From: Greg KH <greg@kroah.com>

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

_