| #ifndef _BACKPORT_TIMER_H |
| #define _BACKPORT_TIMER_H |
| #include_next <linux/timer.h> |
| #ifndef setup_deferrable_timer |
| * The TIMER_DEFERRABLE flag has not been around since 3.0 so |
| * two different backports are needed here. |
| #define setup_deferrable_timer(timer, fn, data) \ |
| __setup_timer((timer), (fn), (data), TIMER_DEFERRABLE) |
| static inline void setup_deferrable_timer_key(struct timer_list *timer, |
| struct lock_class_key *key, |
| void (*func)(unsigned long), |
| init_timer_deferrable_key(timer, name, key); |
| #define setup_deferrable_timer(timer, fn, data) \ |
| static struct lock_class_key __key; \ |
| setup_deferrable_timer_key((timer), #timer, &__key, \ |
| #endif /* _BACKPORT_TIMER_H */ |