提交 7ff20792 编写于 作者: P Peter Zijlstra 提交者: Ingo Molnar

Revert "lockdep, timer: Fix del_timer_sync() annotation"

Both attempts at trying to allow softirq usage for
del_timer_sync() failed (produced bogus warnings),
so revert the commit for this release:

  f266a511: lockdep, timer: Fix del_timer_sync() annotation

and try again later.
Reported-by: NBorislav Petkov <bp@alien8.de>
Signed-off-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Yong Zhang <yong.zhang0@gmail.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
LKML-Reference: <1297174680.13327.107.camel@laptop>
Signed-off-by: NIngo Molnar <mingo@elte.hu>
上级 100b33c8
...@@ -959,7 +959,7 @@ EXPORT_SYMBOL(try_to_del_timer_sync); ...@@ -959,7 +959,7 @@ EXPORT_SYMBOL(try_to_del_timer_sync);
* *
* Synchronization rules: Callers must prevent restarting of the timer, * Synchronization rules: Callers must prevent restarting of the timer,
* otherwise this function is meaningless. It must not be called from * 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 * 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 * add_timer_on(). Upon exit the timer is not queued and the handler is
* not running on any CPU. * not running on any CPU.
...@@ -971,12 +971,10 @@ int del_timer_sync(struct timer_list *timer) ...@@ -971,12 +971,10 @@ int del_timer_sync(struct timer_list *timer)
#ifdef CONFIG_LOCKDEP #ifdef CONFIG_LOCKDEP
unsigned long flags; unsigned long flags;
raw_local_irq_save(flags); local_irq_save(flags);
local_bh_disable();
lock_map_acquire(&timer->lockdep_map); lock_map_acquire(&timer->lockdep_map);
lock_map_release(&timer->lockdep_map); lock_map_release(&timer->lockdep_map);
_local_bh_enable(); local_irq_restore(flags);
raw_local_irq_restore(flags);
#endif #endif
/* /*
* don't use it in hardirq context, because it * don't use it in hardirq context, because it
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册