[PATCH] console_setup() depends (wrongly?) on CONFIG_PRINTK
It appears that console_setup() code only gets compiled into the kernel if CONFIG_PRINTK is enabled. One detrimental side-effect of this is that serial8250_console_setup() never gets invoked when CONFIG_PRINTK is not set, resulting in baud rate not being read/parsed from command line (i.e. console=ttyS0,115200n8 is ignored, at least the baud rate part...) Attached patch moves console_setup() code from inside #ifdef CONFIG_PRINTK to outside (in printk.c), removing dependence on said config. option. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
7e9dd124b9
commit
2ea1c5392c
1 changed files with 38 additions and 38 deletions
|
@ -122,44 +122,6 @@ static char *log_buf = __log_buf;
|
||||||
static int log_buf_len = __LOG_BUF_LEN;
|
static int log_buf_len = __LOG_BUF_LEN;
|
||||||
static unsigned long logged_chars; /* Number of chars produced since last read+clear operation */
|
static unsigned long logged_chars; /* Number of chars produced since last read+clear operation */
|
||||||
|
|
||||||
/*
|
|
||||||
* Setup a list of consoles. Called from init/main.c
|
|
||||||
*/
|
|
||||||
static int __init console_setup(char *str)
|
|
||||||
{
|
|
||||||
char name[sizeof(console_cmdline[0].name)];
|
|
||||||
char *s, *options;
|
|
||||||
int idx;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Decode str into name, index, options.
|
|
||||||
*/
|
|
||||||
if (str[0] >= '0' && str[0] <= '9') {
|
|
||||||
strcpy(name, "ttyS");
|
|
||||||
strncpy(name + 4, str, sizeof(name) - 5);
|
|
||||||
} else
|
|
||||||
strncpy(name, str, sizeof(name) - 1);
|
|
||||||
name[sizeof(name) - 1] = 0;
|
|
||||||
if ((options = strchr(str, ',')) != NULL)
|
|
||||||
*(options++) = 0;
|
|
||||||
#ifdef __sparc__
|
|
||||||
if (!strcmp(str, "ttya"))
|
|
||||||
strcpy(name, "ttyS0");
|
|
||||||
if (!strcmp(str, "ttyb"))
|
|
||||||
strcpy(name, "ttyS1");
|
|
||||||
#endif
|
|
||||||
for (s = name; *s; s++)
|
|
||||||
if ((*s >= '0' && *s <= '9') || *s == ',')
|
|
||||||
break;
|
|
||||||
idx = simple_strtoul(s, NULL, 10);
|
|
||||||
*s = 0;
|
|
||||||
|
|
||||||
add_preferred_console(name, idx, options);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
__setup("console=", console_setup);
|
|
||||||
|
|
||||||
static int __init log_buf_len_setup(char *str)
|
static int __init log_buf_len_setup(char *str)
|
||||||
{
|
{
|
||||||
unsigned long size = memparse(str, &str);
|
unsigned long size = memparse(str, &str);
|
||||||
|
@ -659,6 +621,44 @@ static void call_console_drivers(unsigned long start, unsigned long end)
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Set up a list of consoles. Called from init/main.c
|
||||||
|
*/
|
||||||
|
static int __init console_setup(char *str)
|
||||||
|
{
|
||||||
|
char name[sizeof(console_cmdline[0].name)];
|
||||||
|
char *s, *options;
|
||||||
|
int idx;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Decode str into name, index, options.
|
||||||
|
*/
|
||||||
|
if (str[0] >= '0' && str[0] <= '9') {
|
||||||
|
strcpy(name, "ttyS");
|
||||||
|
strncpy(name + 4, str, sizeof(name) - 5);
|
||||||
|
} else {
|
||||||
|
strncpy(name, str, sizeof(name) - 1);
|
||||||
|
}
|
||||||
|
name[sizeof(name) - 1] = 0;
|
||||||
|
if ((options = strchr(str, ',')) != NULL)
|
||||||
|
*(options++) = 0;
|
||||||
|
#ifdef __sparc__
|
||||||
|
if (!strcmp(str, "ttya"))
|
||||||
|
strcpy(name, "ttyS0");
|
||||||
|
if (!strcmp(str, "ttyb"))
|
||||||
|
strcpy(name, "ttyS1");
|
||||||
|
#endif
|
||||||
|
for (s = name; *s; s++)
|
||||||
|
if ((*s >= '0' && *s <= '9') || *s == ',')
|
||||||
|
break;
|
||||||
|
idx = simple_strtoul(s, NULL, 10);
|
||||||
|
*s = 0;
|
||||||
|
|
||||||
|
add_preferred_console(name, idx, options);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
__setup("console=", console_setup);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* add_preferred_console - add a device to the list of preferred consoles.
|
* add_preferred_console - add a device to the list of preferred consoles.
|
||||||
* @name: device name
|
* @name: device name
|
||||||
|
|
Loading…
Add table
Reference in a new issue