summaryrefslogtreecommitdiffstats
path: root/common/usb_hub.c
diff options
context:
space:
mode:
authorMilind Choudhary <milindc@codeaurora.org>2012-12-12 17:55:28 -0800
committerMarek Vasut <marex@denx.de>2012-12-17 15:38:15 +0100
commit359439d2888fdc3797903963607bb0bbd4582e08 (patch)
tree53b04bf80b9d3fbc57b7feb318092048e007bb0a /common/usb_hub.c
parentb6d7852cf8b7ced786937d3d080956b0c7be9836 (diff)
downloadtalos-obmc-uboot-359439d2888fdc3797903963607bb0bbd4582e08.tar.gz
talos-obmc-uboot-359439d2888fdc3797903963607bb0bbd4582e08.zip
usb: Clean up newly allocated device nodes in case of configuration failure
If probe of a newly connected device fails for some reason, clean up the allocated entry in usb_dev array. Signed-off-by: Milind Choudhary <milindc@codeaurora.org> Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'common/usb_hub.c')
-rw-r--r--common/usb_hub.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/common/usb_hub.c b/common/usb_hub.c
index 4d75b902ff..b5eeb62fbe 100644
--- a/common/usb_hub.c
+++ b/common/usb_hub.c
@@ -259,6 +259,8 @@ void usb_hub_port_connect_change(struct usb_device *dev, int port)
/* Run it through the hoops (find a driver, etc) */
if (usb_new_device(usb)) {
/* Woops, disable the port */
+ usb_free_device();
+ dev->children[port] = NULL;
USB_HUB_PRINTF("hub: disabling port %d\n", port + 1);
usb_clear_port_feature(dev, port + 1, USB_PORT_FEAT_ENABLE);
}
OpenPOWER on IntegriCloud