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>
This commit is contained in:
Milind Choudhary
2012-12-12 17:55:28 -08:00
committed by Marek Vasut
parent b6d7852cf8
commit 359439d288
3 changed files with 15 additions and 0 deletions
+12
View File
@@ -805,6 +805,18 @@ struct usb_device *usb_alloc_new_device(void *controller)
return &usb_dev[dev_index - 1];
}
/*
* Free the newly created device node.
* Called in error cases where configuring a newly attached
* device fails for some reason.
*/
void usb_free_device(void)
{
dev_index--;
USB_PRINTF("Freeing device node: %d\n", dev_index);
memset(&usb_dev[dev_index], 0, sizeof(struct usb_device));
usb_dev[dev_index].devnum = -1;
}
/*
* By the time we get here, the device has gotten a new device ID