ChangeSet 1.842.46.11, 2002/11/26 14:27:06-08:00, [EMAIL PROTECTED]
[PATCH] tiglusb timeouts
It addresses the timeout parameter in the tiglusb driver.
1. timeout could be 0, causing a divide-by-zero.
The patch prevents this.
2. The timeout value to usb_bulk_msg() could be rounded
down to cause a divide-by-zero if timeout was < 10, e.g. 9,
in:
result = usb_bulk_msg (s->dev, pipe, buffer, bytes_to_read,
&bytes_read, HZ / (timeout / 10));
9 / 10 == 0 => divide-by-zero !!
3. The timeout value above doesn't do very well on converting
timeout to tenths of seconds. Even for the default timeout
value of 15 (1.5 seconds), it becomes:
HZ / (15 / 10) == HZ / 1 == HZ, or 1 second.
The patch corrects this formula to use:
(HZ * 10) / timeout
diff -Nru a/drivers/usb/misc/tiglusb.c b/drivers/usb/misc/tiglusb.c
--- a/drivers/usb/misc/tiglusb.c Wed Nov 27 12:51:08 2002
+++ b/drivers/usb/misc/tiglusb.c Wed Nov 27 12:51:08 2002
@@ -185,7 +185,7 @@
pipe = usb_rcvbulkpipe (s->dev, 1);
result = usb_bulk_msg (s->dev, pipe, buffer, bytes_to_read,
- &bytes_read, HZ / (timeout / 10));
+ &bytes_read, HZ * 10 / timeout);
if (result == -ETIMEDOUT) { /* NAK */
ret = result;
if (!bytes_read) {
@@ -242,7 +242,7 @@
pipe = usb_sndbulkpipe (s->dev, 2);
result = usb_bulk_msg (s->dev, pipe, buffer, bytes_to_write,
- &bytes_written, HZ / (timeout / 10));
+ &bytes_written, HZ * 10 / timeout);
if (result == -ETIMEDOUT) { /* NAK */
warn ("tiglusb_write, NAK received.");
@@ -453,6 +453,8 @@
if (ints[0] > 0) {
timeout = ints[1];
}
+ if (!timeout)
+ timeout = TIMAXTIME;
return 1;
}
@@ -494,6 +496,9 @@
info (DRIVER_DESC ", " DRIVER_VERSION);
+ if (!timeout)
+ timeout = TIMAXTIME;
+
return 0;
}
@@ -516,6 +521,6 @@
MODULE_LICENSE (DRIVER_LICENSE);
MODULE_PARM (timeout, "i");
-MODULE_PARM_DESC (timeout, "Timeout (default=1.5 seconds)");
+MODULE_PARM_DESC (timeout, "Timeout in tenths of seconds (default=1.5 seconds)");
/* --------------------------------------------------------------------- */
-------------------------------------------------------
This SF.net email is sponsored by: Get the new Palm Tungsten T
handheld. Power & Color in a compact size!
http://ads.sourceforge.net/cgi-bin/redirect.pl?palm0002en
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel