Parcourir la source

timer: Print function name for timer callbacks modifying preemption count

A function scheduled with a timer must not exit with a different
preempt count than it was entered. To make helping users running into
the corresponding BUG() easier also print the name of the bad function
not only its address.

[ tglx: Sanitized printk ]

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Cc: johnstul@us.ibm.com
Cc: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Uwe Kleine-König il y a 15 ans
Parent
commit
06f71b922c
1 fichiers modifiés avec 2 ajouts et 5 suppressions
  1. 2 5
      kernel/timer.c

+ 2 - 5
kernel/timer.c

@@ -1027,11 +1027,8 @@ static inline void __run_timers(struct tvec_base *base)
 				lock_map_release(&lockdep_map);
 
 				if (preempt_count != preempt_count()) {
-					printk(KERN_ERR "huh, entered %p "
-					       "with preempt_count %08x, exited"
-					       " with %08x?\n",
-					       fn, preempt_count,
-					       preempt_count());
+					printk(KERN_ERR "timer: %pF preempt leak: %08x -> %08x\n",
+					       fn, preempt_count, preempt_count());
 					BUG();
 				}
 			}