diff options
Diffstat (limited to 'kernel/timer.c')
| -rw-r--r-- | kernel/timer.c | 8 | 
1 files changed, 3 insertions, 5 deletions
diff --git a/kernel/timer.c b/kernel/timer.c index 47b86c1e322..612de0306e7 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 - * interrupt contexts. The caller must not hold locks which would prevent + * hardirq 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,12 +969,10 @@ EXPORT_SYMBOL(try_to_del_timer_sync);  int del_timer_sync(struct timer_list *timer)  {  #ifdef CONFIG_LOCKDEP -	unsigned long flags; - -	local_irq_save(flags); +	local_bh_disable();  	lock_map_acquire(&timer->lockdep_map);  	lock_map_release(&timer->lockdep_map); -	local_irq_restore(flags); +	local_bh_enable();  #endif  	for (;;) {  |