diff options
| author | John Z. Bohach <jzb@aexorsyst.com> | 2006-03-24 06:18:19 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-03-24 10:33:27 -0500 |
| commit | 2ea1c5392cc8ce249fb661db4f4cdfbbae373a89 (patch) | |
| tree | 07e612d8e1e6c015f7da2702f2af4129e63db15c /kernel | |
| parent | 7e9dd124b90af80824754f68c0b246cfd0fb624b (diff) | |
[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>
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/printk.c | 76 |
1 files changed, 38 insertions, 38 deletions
diff --git a/kernel/printk.c b/kernel/printk.c index 13ced0f782..8cc19431e7 100644 --- a/kernel/printk.c +++ b/kernel/printk.c | |||
| @@ -122,44 +122,6 @@ static char *log_buf = __log_buf; | |||
| 122 | static int log_buf_len = __LOG_BUF_LEN; | 122 | static int log_buf_len = __LOG_BUF_LEN; |
| 123 | static unsigned long logged_chars; /* Number of chars produced since last read+clear operation */ | 123 | static unsigned long logged_chars; /* Number of chars produced since last read+clear operation */ |
| 124 | 124 | ||
| 125 | /* | ||
| 126 | * Setup a list of consoles. Called from init/main.c | ||
| 127 | */ | ||
| 128 | static int __init console_setup(char *str) | ||
| 129 | { | ||
| 130 | char name[sizeof(console_cmdline[0].name)]; | ||
| 131 | char *s, *options; | ||
| 132 | int idx; | ||
| 133 | |||
| 134 | /* | ||
| 135 | * Decode str into name, index, options. | ||
| 136 | */ | ||
| 137 | if (str[0] >= '0' && str[0] <= '9') { | ||
| 138 | strcpy(name, "ttyS"); | ||
| 139 | strncpy(name + 4, str, sizeof(name) - 5); | ||
| 140 | } else | ||
| 141 | strncpy(name, str, sizeof(name) - 1); | ||
| 142 | name[sizeof(name) - 1] = 0; | ||
| 143 | if ((options = strchr(str, ',')) != NULL) | ||
| 144 | *(options++) = 0; | ||
| 145 | #ifdef __sparc__ | ||
| 146 | if (!strcmp(str, "ttya")) | ||
| 147 | strcpy(name, "ttyS0"); | ||
| 148 | if (!strcmp(str, "ttyb")) | ||
| 149 | strcpy(name, "ttyS1"); | ||
| 150 | #endif | ||
| 151 | for (s = name; *s; s++) | ||
| 152 | if ((*s >= '0' && *s <= '9') || *s == ',') | ||
| 153 | break; | ||
| 154 | idx = simple_strtoul(s, NULL, 10); | ||
| 155 | *s = 0; | ||
| 156 | |||
| 157 | add_preferred_console(name, idx, options); | ||
| 158 | return 1; | ||
| 159 | } | ||
| 160 | |||
| 161 | __setup("console=", console_setup); | ||
| 162 | |||
| 163 | static int __init log_buf_len_setup(char *str) | 125 | static int __init log_buf_len_setup(char *str) |
| 164 | { | 126 | { |
| 165 | unsigned long size = memparse(str, &str); | 127 | unsigned long size = memparse(str, &str); |
| @@ -659,6 +621,44 @@ static void call_console_drivers(unsigned long start, unsigned long end) | |||
| 659 | 621 | ||
| 660 | #endif | 622 | #endif |
| 661 | 623 | ||
| 624 | /* | ||
| 625 | * Set up a list of consoles. Called from init/main.c | ||
| 626 | */ | ||
| 627 | static int __init console_setup(char *str) | ||
| 628 | { | ||
| 629 | char name[sizeof(console_cmdline[0].name)]; | ||
| 630 | char *s, *options; | ||
| 631 | int idx; | ||
| 632 | |||
| 633 | /* | ||
| 634 | * Decode str into name, index, options. | ||
| 635 | */ | ||
| 636 | if (str[0] >= '0' && str[0] <= '9') { | ||
| 637 | strcpy(name, "ttyS"); | ||
| 638 | strncpy(name + 4, str, sizeof(name) - 5); | ||
| 639 | } else { | ||
| 640 | strncpy(name, str, sizeof(name) - 1); | ||
| 641 | } | ||
| 642 | name[sizeof(name) - 1] = 0; | ||
| 643 | if ((options = strchr(str, ',')) != NULL) | ||
| 644 | *(options++) = 0; | ||
| 645 | #ifdef __sparc__ | ||
| 646 | if (!strcmp(str, "ttya")) | ||
| 647 | strcpy(name, "ttyS0"); | ||
| 648 | if (!strcmp(str, "ttyb")) | ||
| 649 | strcpy(name, "ttyS1"); | ||
| 650 | #endif | ||
| 651 | for (s = name; *s; s++) | ||
| 652 | if ((*s >= '0' && *s <= '9') || *s == ',') | ||
| 653 | break; | ||
| 654 | idx = simple_strtoul(s, NULL, 10); | ||
| 655 | *s = 0; | ||
| 656 | |||
| 657 | add_preferred_console(name, idx, options); | ||
| 658 | return 1; | ||
| 659 | } | ||
| 660 | __setup("console=", console_setup); | ||
| 661 | |||
| 662 | /** | 662 | /** |
| 663 | * add_preferred_console - add a device to the list of preferred consoles. | 663 | * add_preferred_console - add a device to the list of preferred consoles. |
| 664 | * @name: device name | 664 | * @name: device name |
