From: Ingo Molnar Teach special (recursive) locking code to the lock validator. Has no effect on non-lockdep kernels. Signed-off-by: Ingo Molnar Signed-off-by: Arjan van de Ven Signed-off-by: Andrew Morton --- include/linux/hrtimer.h | 1 + kernel/hrtimer.c | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff -puN include/linux/hrtimer.h~lockdep-annotate-hrtimer-base-locks include/linux/hrtimer.h --- a/include/linux/hrtimer.h~lockdep-annotate-hrtimer-base-locks +++ a/include/linux/hrtimer.h @@ -91,6 +91,7 @@ struct hrtimer_base { ktime_t (*get_softirq_time)(void); struct hrtimer *curr_timer; ktime_t softirq_time; + struct lock_class_key lock_key; }; /* diff -puN kernel/hrtimer.c~lockdep-annotate-hrtimer-base-locks kernel/hrtimer.c --- a/kernel/hrtimer.c~lockdep-annotate-hrtimer-base-locks +++ a/kernel/hrtimer.c @@ -782,8 +782,10 @@ static void __devinit init_hrtimers_cpu( struct hrtimer_base *base = per_cpu(hrtimer_bases, cpu); int i; - for (i = 0; i < MAX_HRTIMER_BASES; i++, base++) + for (i = 0; i < MAX_HRTIMER_BASES; i++, base++) { spin_lock_init(&base->lock); + lockdep_set_class(&base->lock, &base->lock_key); + } } #ifdef CONFIG_HOTPLUG_CPU _