diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2009-05-19 14:47:33 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2009-09-08 12:42:55 +0200 |
commit | 78df9a19ad1d007379829badc4d882a7051c971a (patch) | |
tree | 59ed42044317aedf862de734f2bc26418dea7c2a /drivers/usb | |
parent | 222abdccec6d811cde6045a225dc4751ddb9c7a1 (diff) | |
download | barebox-78df9a19ad1d007379829badc4d882a7051c971a.tar.gz barebox-78df9a19ad1d007379829badc4d882a7051c971a.tar.xz |
usb: when unregistering usb devices, remove them from device list
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/usb')
-rw-r--r-- | drivers/usb/usb.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/usb/usb.c b/drivers/usb/usb.c index 265e3f5191..51c28a2279 100644 --- a/drivers/usb/usb.c +++ b/drivers/usb/usb.c @@ -451,10 +451,11 @@ static struct usb_device *usb_alloc_new_device(void) static int __usb_init(void) { - struct usb_device *dev; + struct usb_device *dev, *tmp; struct usb_host *host; - list_for_each_entry(dev, &usb_device_list, list) { + list_for_each_entry_safe(dev, tmp, &usb_device_list, list) { + list_del(&dev->list); unregister_device(&dev->dev); if (dev->hub) free(dev->hub); |