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>
This commit is contained in:
parent
5a80b3449b
commit
8879be8857
14
common/usb.c
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…
Reference in New Issue
Block a user