Don't 'printk()' while holding xtime lock for writing
The printk() can deadlock because it can wake up klogd(), and task enqueueing will try to read the time in order to set a hrtimer. Reported-by: Marcin Slusarz <marcin.slusarz@gmail.com> Debugged-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Ingo Molnar <mingo@elte.hu> Cc: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
d2532dd20a
commit
92896bd9fd
|
@ -191,8 +191,12 @@ static void change_clocksource(void)
|
|||
|
||||
tick_clock_notify();
|
||||
|
||||
/*
|
||||
* We're holding xtime lock and waking up klogd would deadlock
|
||||
* us on enqueue. So no printing!
|
||||
printk(KERN_INFO "Time: %s clocksource has been installed.\n",
|
||||
clock->name);
|
||||
*/
|
||||
}
|
||||
#else
|
||||
static inline void change_clocksource(void) { }
|
||||
|
|
Loading…
Reference in New Issue