diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2009-12-08 06:40:31 -0500 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2009-12-14 17:55:34 -0500 |
commit | b5f91da0a6973bb6f9ff3b91b0e92c0773a458f3 (patch) | |
tree | 911ad0eeb484ce9309504fcf5a031403ad47ce84 /kernel/time/clockevents.c | |
parent | d192c47f25daa98996c7eae543d8a27e41247ec2 (diff) |
clockevents: Convert to raw_spinlock
Convert locks which cannot be sleeping locks in preempt-rt to
raw_spinlocks.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Peter Zijlstra <peterz@infradead.org>
Acked-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel/time/clockevents.c')
-rw-r--r-- | kernel/time/clockevents.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/kernel/time/clockevents.c b/kernel/time/clockevents.c index 20a8920029ee..3d5fc0fd1cca 100644 --- a/kernel/time/clockevents.c +++ b/kernel/time/clockevents.c | |||
@@ -30,7 +30,7 @@ static LIST_HEAD(clockevents_released); | |||
30 | static RAW_NOTIFIER_HEAD(clockevents_chain); | 30 | static RAW_NOTIFIER_HEAD(clockevents_chain); |
31 | 31 | ||
32 | /* Protection for the above */ | 32 | /* Protection for the above */ |
33 | static DEFINE_SPINLOCK(clockevents_lock); | 33 | static DEFINE_RAW_SPINLOCK(clockevents_lock); |
34 | 34 | ||
35 | /** | 35 | /** |
36 | * clockevents_delta2ns - Convert a latch value (device ticks) to nanoseconds | 36 | * clockevents_delta2ns - Convert a latch value (device ticks) to nanoseconds |
@@ -141,9 +141,9 @@ int clockevents_register_notifier(struct notifier_block *nb) | |||
141 | unsigned long flags; | 141 | unsigned long flags; |
142 | int ret; | 142 | int ret; |
143 | 143 | ||
144 | spin_lock_irqsave(&clockevents_lock, flags); | 144 | raw_spin_lock_irqsave(&clockevents_lock, flags); |
145 | ret = raw_notifier_chain_register(&clockevents_chain, nb); | 145 | ret = raw_notifier_chain_register(&clockevents_chain, nb); |
146 | spin_unlock_irqrestore(&clockevents_lock, flags); | 146 | raw_spin_unlock_irqrestore(&clockevents_lock, flags); |
147 | 147 | ||
148 | return ret; | 148 | return ret; |
149 | } | 149 | } |
@@ -185,13 +185,13 @@ void clockevents_register_device(struct clock_event_device *dev) | |||
185 | BUG_ON(dev->mode != CLOCK_EVT_MODE_UNUSED); | 185 | BUG_ON(dev->mode != CLOCK_EVT_MODE_UNUSED); |
186 | BUG_ON(!dev->cpumask); | 186 | BUG_ON(!dev->cpumask); |
187 | 187 | ||
188 | spin_lock_irqsave(&clockevents_lock, flags); | 188 | raw_spin_lock_irqsave(&clockevents_lock, flags); |
189 | 189 | ||
190 | list_add(&dev->list, &clockevent_devices); | 190 | list_add(&dev->list, &clockevent_devices); |
191 | clockevents_do_notify(CLOCK_EVT_NOTIFY_ADD, dev); | 191 | clockevents_do_notify(CLOCK_EVT_NOTIFY_ADD, dev); |
192 | clockevents_notify_released(); | 192 | clockevents_notify_released(); |
193 | 193 | ||
194 | spin_unlock_irqrestore(&clockevents_lock, flags); | 194 | raw_spin_unlock_irqrestore(&clockevents_lock, flags); |
195 | } | 195 | } |
196 | EXPORT_SYMBOL_GPL(clockevents_register_device); | 196 | EXPORT_SYMBOL_GPL(clockevents_register_device); |
197 | 197 | ||
@@ -241,7 +241,7 @@ void clockevents_notify(unsigned long reason, void *arg) | |||
241 | struct list_head *node, *tmp; | 241 | struct list_head *node, *tmp; |
242 | unsigned long flags; | 242 | unsigned long flags; |
243 | 243 | ||
244 | spin_lock_irqsave(&clockevents_lock, flags); | 244 | raw_spin_lock_irqsave(&clockevents_lock, flags); |
245 | clockevents_do_notify(reason, arg); | 245 | clockevents_do_notify(reason, arg); |
246 | 246 | ||
247 | switch (reason) { | 247 | switch (reason) { |
@@ -256,7 +256,7 @@ void clockevents_notify(unsigned long reason, void *arg) | |||
256 | default: | 256 | default: |
257 | break; | 257 | break; |
258 | } | 258 | } |
259 | spin_unlock_irqrestore(&clockevents_lock, flags); | 259 | raw_spin_unlock_irqrestore(&clockevents_lock, flags); |
260 | } | 260 | } |
261 | EXPORT_SYMBOL_GPL(clockevents_notify); | 261 | EXPORT_SYMBOL_GPL(clockevents_notify); |
262 | #endif | 262 | #endif |