On 07/24/2014 03:28 PM, Sebastian Hesselbarth wrote:
New usb devices are added to a list of usb devices, but when removing the corresponding usb_device it was not removed from that list. Fix it by deleting it properly from the usb_device_list. Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@xxxxxxxxx> --- To: Sascha Hauer <s.hauer@xxxxxxxxxxxxxx> Cc: Thomas Petazzoni <thomas.petazzoni@xxxxxxxxxxxxxxxxxx> Cc: Ezequiel Garcia <ezequiel.garcia@xxxxxxxxxxxxxxxxxx> Cc: barebox@xxxxxxxxxxxxxxxxxxx --- drivers/usb/core/usb.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/usb/core/usb.c b/drivers/usb/core/usb.c index 351e783b6536..2cc338465539 100644 --- a/drivers/usb/core/usb.c +++ b/drivers/usb/core/usb.c @@ -472,6 +472,7 @@ void usb_remove_device(struct usb_device *usbdev) dev_err(&usbdev->dev, "failed to unregister\n"); usbdev->parent->children[usbdev->portnr - 1] = NULL; + list_del(&usbdev->list);
Unfortunately, this breaks usb_remove_device when called on a device that has not yet gone through usb_new_device(). I'll have a closer look at it. Sebastian
free(usbdev); }
_______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox