[patch 09/28] USB: storage: raise timeout in usb_stor_Bulk_max_lun

Greg KH
2009-08-13T19:52:30Z

[-- Attachment #1: usb-storage-raise-timeout-in-usb_stor_bulk_max_lun.patch --]
[-- Type: text/plain, Size: 1166 bytes --]

2.6.27-stable review patch. If anyone has any objections, please let us know.

------------------

From: Giacomo Lozito <james@develia.org>

commit 7a777919bbeec3eac1d7904a728a60e9c2bb9c67 upstream.

Requests to get max LUN, for certain USB storage devices, require a
longer timeout before a correct reply is returned. This happens for a
Realtek USB Card Reader (0bda:0152), which has a max LUN of 3 but is set
to 0, thus losing functionality, because of the timeout occurring too
quickly.

Raising the timeout value fixes the issue and might help other devices
to return a correct max LUN value as well.

Signed-off-by: Giacomo Lozito <james@develia.org>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

--- a/drivers/usb/storage/transport.c
+++ b/drivers/usb/storage/transport.c
@@ -961,7 +961,7 @@ int usb_stor_Bulk_max_lun(struct us_data *us)
US_BULK_GET_MAX_LUN,
USB_DIR_IN | USB_TYPE_CLASS |
USB_RECIP_INTERFACE,
- 0, us->ifnum, us->iobuf, 1, HZ);
+ 0, us->ifnum, us->iobuf, 1, 10*HZ);

US_DEBUGP("GetMaxLUN command result is %d, data is %d\n",
result, us->iobuf[0]);