diff options
| author | Hans Petter Selasky <hselasky@FreeBSD.org> | 2013-03-13 15:38:01 +0000 |
|---|---|---|
| committer | Hans Petter Selasky <hselasky@FreeBSD.org> | 2013-03-13 15:38:01 +0000 |
| commit | 23de050b72bbcf2f78e6425f8683f430059a1f91 (patch) | |
| tree | 14ef109da101eccc8fa4e029d607411fe9ea7377 /sys/dev/usb/usb_device.c | |
| parent | 6619413096ca2cd63cdd45b422edaa6921aa39e3 (diff) | |
Notes
Diffstat (limited to 'sys/dev/usb/usb_device.c')
| -rw-r--r-- | sys/dev/usb/usb_device.c | 10 |
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; + } + } } /* |
