Re: [PATCH v2 RESEND] usb: gadget: udc-core: Rescan pending list on driver unbind

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux