Krzysztof: Your patch doesn't address a bug that has been present in usb_add_gadget_udc_release() for some time. If the bind callback fails with any error other than -EPROBE_DEFER, the driver remains unbound to the gadget but it is not added back on to the gadget_driver_pending_list. As a result, when the driver is unregistered, the list_del() call will cause problems. There's a good reason not to add the driver back on to the list: If it's not working then we don't want to keep trying to probe it over and over again. I think the best thing to do would be list_del_init(&driver->pending), so that at least unregistration won't cause an oops. There's another thing. If the bind callback fails, why not continue the loop in check_pending_gadget_drivers()? Maybe another pending driver will succeed. (Of course, to do this would require using list_for_each_entry_safe instead of list_for_each_entry.) Alan Stern -- 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