From: Adam Belay Add missing 8250_pnp module_exit() handler. Without this the driver leaves tables registered after being unloaded which causes mysterious crashes. --- drivers/serial/8250_pnp.c | 5 ++++- 1 files changed, 4 insertions(+), 1 deletion(-) diff -puN drivers/serial/8250_pnp.c~8250_pnp-cleanup drivers/serial/8250_pnp.c --- 25/drivers/serial/8250_pnp.c~8250_pnp-cleanup 2004-01-23 10:28:43.000000000 -0800 +++ 25-akpm/drivers/serial/8250_pnp.c 2004-01-23 10:28:43.000000000 -0800 @@ -420,6 +420,9 @@ serial_pnp_probe(struct pnp_dev * dev, c static void serial_pnp_remove(struct pnp_dev * dev) { + int line = (int)pnp_get_drvdata(dev); + if (line) + unregister_serial(line - 1); return; } @@ -437,7 +440,7 @@ static int __init serial8250_pnp_init(vo static void __exit serial8250_pnp_exit(void) { - /* FIXME */ + pnp_unregister_driver(&serial_pnp_driver); } module_init(serial8250_pnp_init); _