From: Greg KH Below is a small patch that fixes the oops that happens in the latest 2.6 kernels when you plug in a keyspan or whiteheat usb to serial device. Thanks to Ben for pointing out that there is a problem, and to Pat for finding where the problem was (in my code, not his :) 25-akpm/drivers/usb/serial/usb-serial.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletion(-) diff -puN drivers/usb/serial/usb-serial.c~usb-serial-oops-fix drivers/usb/serial/usb-serial.c --- 25/drivers/usb/serial/usb-serial.c~usb-serial-oops-fix Fri Aug 29 13:36:20 2003 +++ 25-akpm/drivers/usb/serial/usb-serial.c Fri Aug 29 13:36:20 2003 @@ -871,7 +871,8 @@ static void destroy_serial (struct kobje /* the ports are cleaned up and released in port_release() */ for (i = 0; i < serial->num_ports; ++i) - device_unregister(&serial->port[i]->dev); + if (serial->port[i]->dev.parent != NULL) + device_unregister(&serial->port[i]->dev); /* If this is a "fake" port, we have to clean it up here, as it will * not get cleaned up in port_release() as it was never registered with _