Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mjg59/platf...
[pandora-kernel.git] / include / linux / timer.h
index ea965b8..38cf093 100644 (file)
@@ -100,6 +100,13 @@ void init_timer_deferrable_key(struct timer_list *timer,
                setup_timer_on_stack_key((timer), #timer, &__key,       \
                                         (fn), (data));                 \
        } while (0)
+#define setup_deferrable_timer_on_stack(timer, fn, data)               \
+       do {                                                            \
+               static struct lock_class_key __key;                     \
+               setup_deferrable_timer_on_stack_key((timer), #timer,    \
+                                                   &__key, (fn),       \
+                                                   (data));            \
+       } while (0)
 #else
 #define init_timer(timer)\
        init_timer_key((timer), NULL, NULL)
@@ -111,6 +118,8 @@ void init_timer_deferrable_key(struct timer_list *timer,
        setup_timer_key((timer), NULL, NULL, (fn), (data))
 #define setup_timer_on_stack(timer, fn, data)\
        setup_timer_on_stack_key((timer), NULL, NULL, (fn), (data))
+#define setup_deferrable_timer_on_stack(timer, fn, data)\
+       setup_deferrable_timer_on_stack_key((timer), NULL, NULL, (fn), (data))
 #endif
 
 #ifdef CONFIG_DEBUG_OBJECTS_TIMERS
@@ -150,6 +159,12 @@ static inline void setup_timer_on_stack_key(struct timer_list *timer,
        init_timer_on_stack_key(timer, name, key);
 }
 
+extern void setup_deferrable_timer_on_stack_key(struct timer_list *timer,
+                                               const char *name,
+                                               struct lock_class_key *key,
+                                               void (*function)(unsigned long),
+                                               unsigned long data);
+
 /**
  * timer_pending - is a timer pending?
  * @timer: the timer in question