PERFORCE change 158869 for review
Hans Petter Selasky
hselasky at FreeBSD.org
Sun Mar 8 13:55:15 PDT 2009
http://perforce.freebsd.org/chv.cgi?CH=158869
Change 158869 by hselasky at hselasky_laptop001 on 2009/03/08 20:54:31
USB serial: Fix sael init code.
Reported by: Alberto Mijares
Affected files ...
.. //depot/projects/usb/src/sys/dev/usb/serial/u3g.c#3 edit
Differences ...
==== //depot/projects/usb/src/sys/dev/usb/serial/u3g.c#3 (text+ko) ====
@@ -299,6 +299,7 @@
};
struct usb2_device_request req;
+ usb2_error_t err;
uint16_t len;
uint8_t buf[0x300];
uint8_t n;
@@ -320,25 +321,28 @@
DPRINTFN(0, "too small buffer\n");
continue;
}
- if (usb2_do_request(udev, NULL, &req, buf)) {
- DPRINTFN(0, "request %u failed\n",
- (unsigned int)n);
- break;
- }
+ err = usb2_do_request(udev, NULL, &req, buf);
} else {
if (len > (sizeof(setup[0]) - 8)) {
DPRINTFN(0, "too small buffer\n");
continue;
}
- if (usb2_do_request(udev, NULL, &req,
- __DECONST(uint8_t *, &setup[n][8]))) {
- DPRINTFN(0, "request %u failed\n",
- (unsigned int)n);
+ err = usb2_do_request(udev, NULL, &req,
+ __DECONST(uint8_t *, &setup[n][8]));
+ }
+ if (err) {
+ DPRINTFN(1, "request %u failed\n",
+ (unsigned int)n);
+ /*
+ * Some of the requests will fail. Stop doing
+ * requests when we are getting timeouts so
+ * that we don't block the explore/attach
+ * thread forever.
+ */
+ if (err == USB_ERR_TIMEOUT)
break;
- }
}
}
- return;
}
static int
More information about the p4-projects
mailing list