Browse Source

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
Linus Torvalds 14 years ago
parent
commit
a1213b091c
2 changed files with 5 additions and 7 deletions
  1. 2 2
      kernel/time/timer_list.c
  2. 3 5
      kernel/timer.c

+ 2 - 2
kernel/time/timer_list.c

@@ -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 @@ next_one:
 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",

+ 3 - 5
kernel/timer.c

@@ -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)
 #ifdef CONFIG_LOCKDEP
 #ifdef CONFIG_LOCKDEP
 	unsigned long flags;
 	unsigned long flags;
 
 
-	raw_local_irq_save(flags);
-	local_bh_disable();
+	local_irq_save(flags);
 	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();
-	raw_local_irq_restore(flags);
+	local_irq_restore(flags);
 #endif
 #endif
 	/*
 	/*
 	 * don't use it in hardirq context, because it
 	 * don't use it in hardirq context, because it