summaryrefslogtreecommitdiffstats
path: root/drivers/usb
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2009-05-19 14:47:33 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2009-09-08 12:42:55 +0200
commit78df9a19ad1d007379829badc4d882a7051c971a (patch)
tree59ed42044317aedf862de734f2bc26418dea7c2a /drivers/usb
parent222abdccec6d811cde6045a225dc4751ddb9c7a1 (diff)
downloadbarebox-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.c5
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);