usb: Check usb_new_device for failure

This checks that a new USB device is correctly initialized and frees it if not.
In addition, this doesn't report that USB was started when no device was found.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
master
Paul Kocialkowski 9 years ago committed by Marek Vasut
parent 5a80b3449b
commit 8879be8857
  1. 14
      common/usb.c

@ -95,18 +95,24 @@ int usb_init(void)
start_index = dev_index; start_index = dev_index;
printf("scanning bus %d for devices... ", i); printf("scanning bus %d for devices... ", i);
dev = usb_alloc_new_device(ctrl); dev = usb_alloc_new_device(ctrl);
if (!dev)
break;
/* /*
* device 0 is always present * device 0 is always present
* (root hub, so let it analyze) * (root hub, so let it analyze)
*/ */
if (dev) ret = usb_new_device(dev);
usb_new_device(dev); if (ret)
usb_free_device();
if (start_index == dev_index) if (start_index == dev_index) {
puts("No USB Device found\n"); puts("No USB Device found\n");
else continue;
} else {
printf("%d USB Device(s) found\n", printf("%d USB Device(s) found\n",
dev_index - start_index); dev_index - start_index);
}
usb_started = 1; usb_started = 1;
} }

Loading…
Cancel
Save