diff options
| author | Tony Lindgren <tony@atomide.com> | 2011-02-25 12:27:14 -0800 |
|---|---|---|
| committer | Tony Lindgren <tony@atomide.com> | 2011-02-25 12:27:14 -0800 |
| commit | 02fa9f0451ac639a687bfc145eefe58703ff220e (patch) | |
| tree | fe984acc78f22f6eb8fb98efaba8b1ac2f3ad8d9 /kernel/timer.c | |
| parent | cbc9438075ca9dee3f39a2e7310f81c304b40359 (diff) | |
| parent | 51c404b2c514930e98e81e0b9294f19892a4f871 (diff) | |
Merge branch 'patches_for_2.6.38rc' of git://git.pwsan.com/linux-2.6 into devel-fixes
Diffstat (limited to 'kernel/timer.c')
| -rw-r--r-- | kernel/timer.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/kernel/timer.c b/kernel/timer.c index 43ca9936f2d0..d6459923d245 100644 --- a/kernel/timer.c +++ b/kernel/timer.c @@ -959,7 +959,7 @@ EXPORT_SYMBOL(try_to_del_timer_sync); * * Synchronization rules: Callers must prevent restarting of the timer, * otherwise this function is meaningless. It must not be called from - * hardirq contexts. The caller must not hold locks which would prevent + * interrupt contexts. The caller must not hold locks which would prevent * completion of the timer's handler. The timer's handler must not call * add_timer_on(). Upon exit the timer is not queued and the handler is * not running on any CPU. @@ -969,10 +969,12 @@ EXPORT_SYMBOL(try_to_del_timer_sync); int del_timer_sync(struct timer_list *timer) { #ifdef CONFIG_LOCKDEP - local_bh_disable(); + unsigned long flags; + + local_irq_save(flags); lock_map_acquire(&timer->lockdep_map); lock_map_release(&timer->lockdep_map); - local_bh_enable(); + local_irq_restore(flags); #endif /* * don't use it in hardirq context, because it |
