diff options
Diffstat (limited to 'drivers/net/netconsole.c')
| -rw-r--r-- | drivers/net/netconsole.c | 27 | 
1 files changed, 14 insertions, 13 deletions
diff --git a/drivers/net/netconsole.c b/drivers/net/netconsole.c index 2c2aef1ae8e..e56aa6c9743 100644 --- a/drivers/net/netconsole.c +++ b/drivers/net/netconsole.c @@ -53,6 +53,15 @@ static char config[MAX_PARAM_LENGTH];  module_param_string(netconsole, config, MAX_PARAM_LENGTH, 0);  MODULE_PARM_DESC(netconsole, " netconsole=[src-port]@[src-ip]/[dev],[tgt-port]@<tgt-ip>/[tgt-macaddr]\n"); +#ifndef	MODULE +static int __init option_setup(char *opt) +{ +	strlcpy(config, opt, MAX_PARAM_LENGTH); +	return 1; +} +__setup("netconsole=", option_setup); +#endif	/* MODULE */ +  static struct netpoll np = {  	.name		= "netconsole",  	.dev_name	= "eth0", @@ -60,7 +69,6 @@ static struct netpoll np = {  	.remote_port	= 6666,  	.remote_mac	= {0xff, 0xff, 0xff, 0xff, 0xff, 0xff},  }; -static int configured;  static void write_msg(struct console *con, const char *msg, unsigned int len)  { @@ -85,26 +93,19 @@ static struct console netconsole = {  	.write	= write_msg,  }; -static int __init option_setup(char *opt) -{ -	configured = !netpoll_parse_options(&np, opt); -	return 1; -} - -__setup("netconsole=", option_setup); -  static int __init init_netconsole(void)  {  	int err = 0; -	if (strnlen(config, MAX_PARAM_LENGTH)) -		option_setup(config); - -	if (!configured) { +	if (!strnlen(config, MAX_PARAM_LENGTH)) {  		printk(KERN_INFO "netconsole: not configured, aborting\n");  		goto out;  	} +	err = netpoll_parse_options(&np, config); +	if (err) +		goto out; +  	err = netpoll_setup(&np);  	if (err)  		goto out;  |