diff --git a/kernel/printk.c b/kernel/printk.c index ee79f14db358f1f996313739dfc7d9fc47f8a61c..22e070f3470a66569f12d917bcf9b655f4817d4d 100644 --- a/kernel/printk.c +++ b/kernel/printk.c @@ -1914,7 +1914,8 @@ static int __cpuinit console_cpu_notify(struct notifier_block *self, */ void console_lock(void) { - BUG_ON(in_interrupt()); + might_sleep(); + down(&console_sem); if (console_suspended) return;