--- a/drivers/usb/storage/scsiglue.c
+++ b/drivers/usb/storage/scsiglue.c
@@ -95,6 +95,11 @@ static int detect(struct SHT *sht)
 	if (us->host) {
 		us->host->hostdata[0] = (unsigned long)us;
 		us->host_no = us->host->host_no;
+
+		/* allow 16-byte CDBs as we need it for devices > 2TB
+		   and ATA command pass-through */
+		us->host->max_cmd_len = 16;
+
 		return 1;
 	}
 
