Commit a1213b09 authored by Linus Torvalds's avatar Linus Torvalds

Merge branches 'core-fixes-for-linus' and 'timers-fixes-for-linus' of...

Merge branches 'core-fixes-for-linus' and 'timers-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip

* 'core-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  Revert "lockdep, timer: Fix del_timer_sync() annotation"

* 'timers-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  timer debug: Hide kernel addresses via %pK in /proc/timer_list
...@@ -41,7 +41,7 @@ static void print_name_offset(struct seq_file *m, void *sym) ...@@ -41,7 +41,7 @@ static void print_name_offset(struct seq_file *m, void *sym)
char symname[KSYM_NAME_LEN]; char symname[KSYM_NAME_LEN];
if (lookup_symbol_name((unsigned long)sym, symname) < 0) if (lookup_symbol_name((unsigned long)sym, symname) < 0)
SEQ_printf(m, "<%p>", sym); SEQ_printf(m, "<%pK>", sym);
else else
SEQ_printf(m, "%s", symname); SEQ_printf(m, "%s", symname);
} }
...@@ -112,7 +112,7 @@ print_active_timers(struct seq_file *m, struct hrtimer_clock_base *base, ...@@ -112,7 +112,7 @@ print_active_timers(struct seq_file *m, struct hrtimer_clock_base *base,
static void static void
print_base(struct seq_file *m, struct hrtimer_clock_base *base, u64 now) print_base(struct seq_file *m, struct hrtimer_clock_base *base, u64 now)
{ {
SEQ_printf(m, " .base: %p\n", base); SEQ_printf(m, " .base: %pK\n", base);
SEQ_printf(m, " .index: %d\n", SEQ_printf(m, " .index: %d\n",
base->index); base->index);
SEQ_printf(m, " .resolution: %Lu nsecs\n", SEQ_printf(m, " .resolution: %Lu nsecs\n",
......
...@@ -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%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment