I found, what caused kernel crash: accessing urb data in call to dev_warn(), because pointer usbhid->urbctrl (or urbout) is NULL. Also, found several bugreports, telling that usb_unlink_urb() is deprecated and usb_kill_urb() should be used. Second one used in other places of hid-core.c, so I changed usb_unlink_urb() call to usb_kill_urb(). Now kernel doesn't crash, and device gets stuck again. Here is how hid_urb_timeout() looks now: http://paste.org.ru/index.pl?zcx5t1 And there is also part of kern.log, which I got: http://paste.org.ru/index.pl?iyeyg7 -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html