diff options
author | Christoph Hellwig <hch@infradead.org> | 2014-10-03 01:47:09 -0700 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2014-10-03 05:27:58 -0400 |
commit | 2c2d831c81ec75a7b0d8e28caa8e3d9c1fe546f9 (patch) | |
tree | a17fcc2c3592bd4c0d9a4096b1cb5f87fde20259 | |
parent | 078efae00ffc76381c3248006e9cf0988163488f (diff) | |
download | op-kernel-dev-2c2d831c81ec75a7b0d8e28caa8e3d9c1fe546f9.zip op-kernel-dev-2c2d831c81ec75a7b0d8e28caa8e3d9c1fe546f9.tar.gz |
[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 3f42785..9bfa725 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 = { .cmd_per_lun = 1, /* until we override it */ .skip_settle_delay = 1, .ordered_tag = 1, + + /* + * The uas drivers expects tags not to be bigger than the maximum + * per-device queue depth, which is not true with the blk-mq tag + * allocator. + */ + .disable_blk_mq = true, }; #define UNUSUAL_DEV(id_vendor, id_product, bcdDeviceMin, bcdDeviceMax, \ |