USB: storage: Reject bogus max LUN values
authorMark Knibbs <markk@clara.co.uk>
Tue, 4 Nov 2014 13:00:22 +0000 (13:00 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 7 Nov 2014 16:56:05 +0000 (08:56 -0800)
commit55dc68c012bf056880c03d9f6eb34c00880f9e88
treeace609d80dec37ace0dab0a8ae71803e16815f6b
parentd9c3ae28bd6b72803e266eb384e0ba312f9ff837
USB: storage: Reject bogus max LUN values

Some mass storage devices return a bogus value in response to a Get Max LUN
request. The Iomega Jaz USB Adapter responds with 0x10, hence my recent
patch to use the US_FL_SINGLE_LUN quirk for it.

The USB MSC Bulk Only Transport document says "The device shall return one
byte of data that contains the maximum LUN supported by the device."

Since the LUN field in the command block wrapper is only 4 bits wide, it
might be helpful to report too-large LUN values in the kernel log, and
assume max LUN is actually 0. That could get some devices which currently
need the US_FL_SINGLE_LUN quirk to work.

Signed-off-by: Mark Knibbs <markk@clara.co.uk>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/storage/transport.c