2012-06-22 21:12:22

by Alan Stern

[permalink] [raw]
Subject: [PATCH] printk: fix regression in SYSLOG_ACTION_CLEAR

Commit 7ff9554bb578ba02166071d2d487b7fc7d860d62 (printk: convert
byte-buffer to variable-length record buffer) introduced a regression
by accidentally removing a "break" statement from inside the big
switch in printk's do_syslog(). The symptom of this bug is that the
"dmesg -C" command doesn't only clear the kernel's log buffer; it also
disables console logging.

This patch (as1561) fixes the regression by adding the missing
"break".

Signed-off-by: Alan Stern <[email protected]>
CC: Kay Sievers <[email protected]>

---

This is needed in 3.5-rc. 3.4 is okay.


kernel/printk.c | 1 +
1 file changed, 1 insertion(+)

Index: usb-3.4/kernel/printk.c
===================================================================
--- usb-3.4.orig/kernel/printk.c
+++ usb-3.4/kernel/printk.c
@@ -1027,6 +1027,7 @@ int do_syslog(int type, char __user *buf
/* Clear ring buffer */
case SYSLOG_ACTION_CLEAR:
syslog_print_all(NULL, 0, true);
+ break;
/* Disable logging to console */
case SYSLOG_ACTION_CONSOLE_OFF:
if (saved_console_loglevel == -1)