Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[SPARC]: Linux always started with 9600 8N1

The Linux kernel ignored the PROM's serial settings (115200,n,8,1 in
my case). This was because mode_prop remained "ttyX-mode" (expected:
"ttya-mode") due to the constness of string literals when used with
"char *". Since there is no "ttyX-mode" property in the PROM, Linux
always used the default 9600.

[ Investigation of the suncore.s assembler reveals that gcc optimizied
away the stores, yet did not emit a warning, which is a pretty
anti-social thing to do and is the only reason this bug lived for
so long -DaveM ]

Signed-off-by: Jan Engelhardt <jengelh@gmx.de>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by

Jan Engelhardt and committed by
David S. Miller
b00ccd0f 7189859f

+3 -3
+3 -3
drivers/serial/suncore.c
··· 30 30 sunserial_console_termios(struct console *con) 31 31 { 32 32 char mode[16], buf[16], *s; 33 - char *mode_prop = "ttyX-mode"; 34 - char *cd_prop = "ttyX-ignore-cd"; 35 - char *dtr_prop = "ttyX-rts-dtr-off"; 33 + char mode_prop[] = "ttyX-mode"; 34 + char cd_prop[] = "ttyX-ignore-cd"; 35 + char dtr_prop[] = "ttyX-rts-dtr-off"; 36 36 char *ssp_console_modes_prop = "ssp-console-modes"; 37 37 int baud, bits, stop, cflag; 38 38 char parity;