]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - include/linux/workqueue.h
IRQ_NOPROBE helper functions
[linux-2.6-omap-h63xx.git] / include / linux / workqueue.h
index 7daafdc2514b9657a0e0d9d0325785cc65c934b2..7f28c32d9aca26ebb055fee881c7e28e3fdba2c2 100644 (file)
@@ -149,19 +149,27 @@ struct execute_work {
 
 extern struct workqueue_struct *
 __create_workqueue_key(const char *name, int singlethread,
-                      int freezeable, struct lock_class_key *key);
+                      int freezeable, struct lock_class_key *key,
+                      const char *lock_name);
 
 #ifdef CONFIG_LOCKDEP
 #define __create_workqueue(name, singlethread, freezeable)     \
 ({                                                             \
        static struct lock_class_key __key;                     \
+       const char *__lock_name;                                \
+                                                               \
+       if (__builtin_constant_p(name))                         \
+               __lock_name = (name);                           \
+       else                                                    \
+               __lock_name = #name;                            \
                                                                \
        __create_workqueue_key((name), (singlethread),          \
-                              (freezeable), &__key);           \
+                              (freezeable), &__key,            \
+                              __lock_name);                    \
 })
 #else
 #define __create_workqueue(name, singlethread, freezeable)     \
-       __create_workqueue_key((name), (singlethread), (freezeable), NULL)
+       __create_workqueue_key((name), (singlethread), (freezeable), NULL, NULL)
 #endif
 
 #define create_workqueue(name) __create_workqueue((name), 0, 0)