tiglusb timeouts
PATCH 1/1 tiglusb timeouts
Hi,
this patch fixes some troubles in the tiglusb driver.
Patch is against 2.5.49. Please apply.
Thanks, Romain.
Quoted 23 lines
From: "Randy.Dunlap" <[email protected]>
To: [email protected], [email protected],
[email protected]
Subject: [PATCH] tiglusb timeoutsHi,
Here's a patch for you to consider and apply... 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:
Quoted 8 lines
HZ / (15 / 10) == HZ / 1 == HZ, or 1 second. The patch corrects this formula to use: (HZ * 10) / timeoutPatch is against 2.5.49. Please apply.
Thanks,
~Randy
============================[ cut here ]========================
drivers/usb/misc/tiglusb.c renamed from drivers/usb/misc/tiglusb.c%times +8 -3
@@ -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)" );/* --------------------------------------------------------------------- */
============================[ cut here ]========================
Signature · 3 lines
Romain Lievin, aka 'roms' <[email protected]> Web site <http://lpg.ticalc.org/prj_tilp> "Linux, y'a moins bien mais c'est plus cher !"
Greg KH
AppliedQuoted 5 lines · Romain Lievin
Hi,
this patch fixes some troubles in the tiglusb driver.
Patch is against 2.5.49. Please apply.
Applied, thanks.
greg k-h
Quoted 5 lines · Romain Lievin
Hi,
this patch fixes some troubles in the tiglusb driver.
Patch is against 2.5.49. Please apply.
I also applied it to my 2.4 tree, as it applied there too.
thanks,
greg k-h