From: David Eger pmac_zilog: initialize the serial ports' spinlocks even if console over serial is not enabled; disable this driver by default for ppc This lock not being initialized was Oopsing my TiBook :-P Signed-off-by: David Eger Signed-off-by: Andrew Morton --- 25-akpm/arch/ppc/defconfig | 6 +++--- 25-akpm/drivers/serial/pmac_zilog.c | 3 +-- 2 files changed, 4 insertions(+), 5 deletions(-) diff -puN arch/ppc/defconfig~ppc32-pmac_zilog-initialize-port-spinlock-on-all-init-paths arch/ppc/defconfig --- 25/arch/ppc/defconfig~ppc32-pmac_zilog-initialize-port-spinlock-on-all-init-paths 2004-07-12 18:39:58.773209696 -0700 +++ 25-akpm/arch/ppc/defconfig 2004-07-12 18:39:58.779208784 -0700 @@ -689,7 +689,7 @@ CONFIG_SERIO_SERPORT=y # Input Device Drivers # CONFIG_INPUT_KEYBOARD=y -CONFIG_KEYBOARD_ATKBD=y +# CONFIG_KEYBOARD_ATKBD is not set # CONFIG_KEYBOARD_SUNKBD is not set # CONFIG_KEYBOARD_LKKBD is not set # CONFIG_KEYBOARD_XTKBD is not set @@ -724,8 +724,8 @@ CONFIG_SERIAL_8250_NR_UARTS=4 # # Non-8250 serial port support # -CONFIG_SERIAL_CORE=y -CONFIG_SERIAL_PMACZILOG=y +# CONFIG_SERIAL_CORE is not set +# CONFIG_SERIAL_PMACZILOG is not set # CONFIG_SERIAL_PMACZILOG_CONSOLE is not set CONFIG_UNIX98_PTYS=y CONFIG_LEGACY_PTYS=y diff -puN drivers/serial/pmac_zilog.c~ppc32-pmac_zilog-initialize-port-spinlock-on-all-init-paths drivers/serial/pmac_zilog.c --- 25/drivers/serial/pmac_zilog.c~ppc32-pmac_zilog-initialize-port-spinlock-on-all-init-paths 2004-07-12 18:39:58.774209544 -0700 +++ 25-akpm/drivers/serial/pmac_zilog.c 2004-07-12 18:39:58.781208480 -0700 @@ -1490,6 +1490,7 @@ no_dma: uap->port.ops = &pmz_pops; uap->port.type = PORT_PMAC_ZILOG; uap->port.flags = 0; + spin_lock_init(&uap->port.lock); /* Setup some valid baud rate information in the register * shadows so we don't write crap there before baud rate is @@ -1985,8 +1986,6 @@ static int __init pmz_console_init(void) /* Probe ports */ pmz_probe(); -#ifdef CONFIG_SERIAL_PMACZILOG_CONSOLE -#endif /* TODO: Autoprobe console based on OF */ /* pmz_console.index = i; */ register_console(&pmz_console); _