2.5.40 serial oops
On shutdown, ThinkPad T21's commit this error:
Program received signal SIGSEGV, Segmentation fault. 0x00000000 in ?? ()
(gdb) bt
#0 0x00000000 in ?? ()
#1 0xc01b9eb3 in pci_remove_one (dev=0xc1675c00) at 8250_pci.c:774
#2 0xc01b3a25 in pci_device_remove (dev=0xc1675c50) at pci-driver.c:68
#3 0xc01bdbae in device_shutdown () at power.c:106
#4 0xc0121421 in sys_reboot (magic1=-18751827, magic2=672274793,
cmd=1126301404, arg=0x8049960) at sys.c:393#5 0xc0108a8f in syscall_call () at process.c:685
(gdb) p *priv->board
$1 = {flags = 0, num_ports = 1, base_baud = 115200, uart_offset = 0,
reg_shift = 0, init_fn = 0, first_uart_offset = 0}
(gdb) p pci_boards - priv->board
$2 = 0
Against 2.5.40
drivers/serial/8250_pci.c renamed from drivers/serial/8250_pci.c.orig +2 -1
@@ -771,7 +771,8 @@for (i =0 ; i < priv->nr; i++)unregister_serial (priv->line[i]); - priv->board->init_fn (dev, priv->board,0 ); +if (priv->board->init_fn) + priv->board->init_fn (dev, priv->board,0 );pci_disable_device (dev);