From: Michael Ellerman Date: Tue, 15 Apr 2008 07:49:04 +0000 (-0700) Subject: netconsole: only set CON_PRINTBUFFER if the user specifies a netconsole X-Git-Tag: v2.6.25~4^2~2 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0517deed78be9cc9ce9799bf15da58fd0d2078bb;p=linux-2.6 netconsole: only set CON_PRINTBUFFER if the user specifies a netconsole Since 0bcc1816188e570bde1d56a208996660f2633ae0 (netconsole: Support dynamic reconfiguration using configfs), the netconsole is always registered, regardless of whether the user actually specified a netconsole configuration on the command line. However because netconsole has CON_PRINTBUFFER set, when it is registered it causes the printk buffer to be replayed to all consoles. When there is no netconsole configured this is a) pointless, and b) somewhat annoying for the user of the existing console. So instead we should only set CON_PRINTBUFFER if there is a netconsole configuration found on the command line. This retains the existing behaviour if a netconsole is setup by the user, and avoids spamming other consoles when we're only registering for the dynamic netconsole case. Signed-off-by: Michael Ellerman Signed-off-by: David S. Miller --- diff --git a/drivers/net/netconsole.c b/drivers/net/netconsole.c index 501e451be9..665341e430 100644 --- a/drivers/net/netconsole.c +++ b/drivers/net/netconsole.c @@ -730,7 +730,7 @@ static void write_msg(struct console *con, const char *msg, unsigned int len) static struct console netconsole = { .name = "netcon", - .flags = CON_ENABLED | CON_PRINTBUFFER, + .flags = CON_ENABLED, .write = write_msg, }; @@ -749,6 +749,9 @@ static int __init init_netconsole(void) err = PTR_ERR(nt); goto fail; } + /* Dump existing printks when we register */ + netconsole.flags |= CON_PRINTBUFFER; + spin_lock_irqsave(&target_list_lock, flags); list_add(&nt->list, &target_list); spin_unlock_irqrestore(&target_list_lock, flags);