diff options
author | Christoph Hellwig <hch@infradead.org> | 2014-10-03 04:47:09 -0400 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2014-10-03 05:27:58 -0400 |
commit | 2c2d831c81ec75a7b0d8e28caa8e3d9c1fe546f9 (patch) | |
tree | a17fcc2c3592bd4c0d9a4096b1cb5f87fde20259 | |
parent | 078efae00ffc76381c3248006e9cf0988163488f (diff) |
[SCSI] uas: disable use of blk-mq I/O path
The uas driver uses the block layer tag for USB3 stream IDs. With
blk-mq we can get larger tag numbers that the queue depth, which breaks
this assumption. A fix is under way for 3.18, but sits on top of
large changes so can't easily be backported. Set the disable_blk_mq
path so that a uas device can't easily crash the system when using
blk-mq for SCSI.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
-rw-r--r-- | drivers/usb/storage/uas.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/usb/storage/uas.c b/drivers/usb/storage/uas.c index 3f42785f653c..9bfa7252f7f9 100644 --- a/drivers/usb/storage/uas.c +++ b/drivers/usb/storage/uas.c | |||
@@ -970,6 +970,13 @@ static struct scsi_host_template uas_host_template = { | |||
970 | .cmd_per_lun = 1, /* until we override it */ | 970 | .cmd_per_lun = 1, /* until we override it */ |
971 | .skip_settle_delay = 1, | 971 | .skip_settle_delay = 1, |
972 | .ordered_tag = 1, | 972 | .ordered_tag = 1, |
973 | |||
974 | /* | ||
975 | * The uas drivers expects tags not to be bigger than the maximum | ||
976 | * per-device queue depth, which is not true with the blk-mq tag | ||
977 | * allocator. | ||
978 | */ | ||
979 | .disable_blk_mq = true, | ||
973 | }; | 980 | }; |
974 | 981 | ||
975 | #define UNUSUAL_DEV(id_vendor, id_product, bcdDeviceMin, bcdDeviceMax, \ | 982 | #define UNUSUAL_DEV(id_vendor, id_product, bcdDeviceMin, bcdDeviceMax, \ |