[PATCH] Extract and use wake_up_klogd()
Remove hack with printing space to wake up klogd. Use explicit wake_up_klogd(). See earlier discussion http://groups.google.com/group/fa.linux.kernel/browse_frm/thread/75f496668409f58d/1a8f28983a51e1ff?lnk=st&q=wake_up_klogd+group%3Afa.linux.kernel&rnum=2#1a8f28983a51e1ff Signed-off-by: Alexey Dobriyan <adobriyan@openvz.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
cefc8be824
commit
e3e8a75d2a
3 changed files with 10 additions and 11 deletions
|
@ -176,6 +176,7 @@ static inline void console_verbose(void)
|
|||
}
|
||||
|
||||
extern void bust_spinlocks(int yes);
|
||||
extern void wake_up_klogd(void);
|
||||
extern int oops_in_progress; /* If set, an oops, panic(), BUG() or die() is in progress */
|
||||
extern int panic_timeout;
|
||||
extern int panic_on_oops;
|
||||
|
|
|
@ -783,6 +783,12 @@ int is_console_locked(void)
|
|||
return console_locked;
|
||||
}
|
||||
|
||||
void wake_up_klogd(void)
|
||||
{
|
||||
if (!oops_in_progress && waitqueue_active(&log_wait))
|
||||
wake_up_interruptible(&log_wait);
|
||||
}
|
||||
|
||||
/**
|
||||
* release_console_sem - unlock the console system
|
||||
*
|
||||
|
@ -825,8 +831,8 @@ void release_console_sem(void)
|
|||
console_locked = 0;
|
||||
up(&console_sem);
|
||||
spin_unlock_irqrestore(&logbuf_lock, flags);
|
||||
if (wake_klogd && !oops_in_progress && waitqueue_active(&log_wait))
|
||||
wake_up_interruptible(&log_wait);
|
||||
if (wake_klogd)
|
||||
wake_up_klogd();
|
||||
}
|
||||
EXPORT_SYMBOL(release_console_sem);
|
||||
|
||||
|
|
|
@ -19,19 +19,11 @@ void __attribute__((weak)) bust_spinlocks(int yes)
|
|||
if (yes) {
|
||||
oops_in_progress = 1;
|
||||
} else {
|
||||
int loglevel_save = console_loglevel;
|
||||
#ifdef CONFIG_VT
|
||||
unblank_screen();
|
||||
#endif
|
||||
oops_in_progress = 0;
|
||||
/*
|
||||
* OK, the message is on the console. Now we call printk()
|
||||
* without oops_in_progress set so that printk() will give klogd
|
||||
* and the blanked console a poke. Hold onto your hats...
|
||||
*/
|
||||
console_loglevel = 15; /* NMI oopser may have shut the console up */
|
||||
printk(" ");
|
||||
console_loglevel = loglevel_save;
|
||||
wake_up_klogd();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue