[PATCH] lockdep: annotate hrtimer base locks
authorIngo Molnar <mingo@elte.hu>
Mon, 3 Jul 2006 07:25:11 +0000 (00:25 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Mon, 3 Jul 2006 22:27:07 +0000 (15:27 -0700)
Teach special (recursive) locking code to the lock validator.  Has no effect
on non-lockdep kernels.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
include/linux/hrtimer.h
kernel/hrtimer.c

index 07d7305f131e6a5f1997b9d5af9c1a28412895f8..e4bccbcc2750a3f19711996f764fce80b6d7962a 100644 (file)
@@ -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;
 };
 
 /*
index 8d3dc29ef41ae1fb616d4d8765cb1d077c862852..617304ce67db78adc3ada13a5b6ebe84460f554d 100644 (file)
@@ -782,8 +782,10 @@ static void __devinit init_hrtimers_cpu(int 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