Hi, in addition to the issues noted with alphatrack.c, tranzport.c has an additional problem: /** * usb_tranzport_disconnect * * Called by the usb core when the device is removed from the system. */ static void usb_tranzport_disconnect(struct usb_interface *intf) { struct usb_tranzport *dev; int minor; mutex_lock(&disconnect_mutex); dev = usb_get_intfdata(intf); usb_set_intfdata(intf, NULL); If read/write through sysfs races this, you'll oops. In disconnect you first must call device_remove_file() for every attribute. Regards Oliver -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html