Commit 17f06022 authored by Richard Sharpe's avatar Richard Sharpe Committed by Greg Kroah-Hartman

USB: allow usbstorage to have LUNS greater than 2Tb

Attached is a very small patch (several comment lines) and a one-line
coded change) that allows for USB storage devices that are larger than
2TB.

At the company where I work we need such support, and one of my
co-workers, Jane Liu, pointed out that SCSI low-layer drivers need to
specify what size CDBs they accept. After looking through the code it
became obvious that the current USB Storage code accepted the default of
12-byte CDBs, so I changed it to accept 16-byte CDBs. This allows our
device to work.
Signed-off-by: default avatarRichard Sharpe <rsharpe@richardsharpe.com>
Signed-off-by: default avatarMatthew Dharm <mdharm-usb@one-eyed-alien.net>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent eecfb911
...@@ -960,6 +960,10 @@ static int storage_probe(struct usb_interface *intf, ...@@ -960,6 +960,10 @@ static int storage_probe(struct usb_interface *intf,
return -ENOMEM; return -ENOMEM;
} }
/*
* Allow 16-byte CDBs and thus > 2TB
*/
host->max_cmd_len = 16;
us = host_to_us(host); us = host_to_us(host);
memset(us, 0, sizeof(struct us_data)); memset(us, 0, sizeof(struct us_data));
mutex_init(&(us->dev_mutex)); mutex_init(&(us->dev_mutex));
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment