summaryrefslogtreecommitdiff
path: root/sys/dev/usb/usb_device.c
diff options
context:
space:
mode:
authorHans Petter Selasky <hselasky@FreeBSD.org>2013-03-13 15:38:01 +0000
committerHans Petter Selasky <hselasky@FreeBSD.org>2013-03-13 15:38:01 +0000
commit23de050b72bbcf2f78e6425f8683f430059a1f91 (patch)
tree14ef109da101eccc8fa4e029d607411fe9ea7377 /sys/dev/usb/usb_device.c
parent6619413096ca2cd63cdd45b422edaa6921aa39e3 (diff)
Notes
Diffstat (limited to 'sys/dev/usb/usb_device.c')
-rw-r--r--sys/dev/usb/usb_device.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/sys/dev/usb/usb_device.c b/sys/dev/usb/usb_device.c
index 1c40815c65b3..43378c0b0b27 100644
--- a/sys/dev/usb/usb_device.c
+++ b/sys/dev/usb/usb_device.c
@@ -1698,10 +1698,14 @@ usb_alloc_device(device_t parent_dev, struct usb_bus *bus,
err = usbd_setup_device_desc(udev, NULL);
if (err != 0) {
- /* XXX try to re-enumerate the device */
+ /* try to enumerate two more times */
err = usbd_req_re_enumerate(udev, NULL);
- if (err)
- goto done;
+ if (err != 0) {
+ err = usbd_req_re_enumerate(udev, NULL);
+ if (err != 0) {
+ goto done;
+ }
+ }
}
/*