summaryrefslogtreecommitdiffstats
path: root/0001-uas-Limit-qdepth-at-the-scsi-host-level.patch
diff options
context:
space:
mode:
Diffstat (limited to '0001-uas-Limit-qdepth-at-the-scsi-host-level.patch')
-rw-r--r--0001-uas-Limit-qdepth-at-the-scsi-host-level.patch45
1 files changed, 45 insertions, 0 deletions
diff --git a/0001-uas-Limit-qdepth-at-the-scsi-host-level.patch b/0001-uas-Limit-qdepth-at-the-scsi-host-level.patch
new file mode 100644
index 000000000..b6c446829
--- /dev/null
+++ b/0001-uas-Limit-qdepth-at-the-scsi-host-level.patch
@@ -0,0 +1,45 @@
+From 79abe2bd501d628b165f323098d6972d69bd13d7 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede@redhat.com>
+Date: Wed, 16 Mar 2016 13:20:51 +0100
+Subject: [PATCH] uas: Limit qdepth at the scsi-host level
+
+Commit 64d513ac31bd ("scsi: use host wide tags by default") causes
+the scsi-core to queue more cmnds then we can handle on devices with
+multiple LUNs, limit the qdepth at the scsi-host level instead of
+per slave to fix this.
+
+BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1315013
+Cc: stable@vger.kernel.org # 4.4.x and 4.5.x
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+---
+ drivers/usb/storage/uas.c | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/usb/storage/uas.c b/drivers/usb/storage/uas.c
+index c90a7e4..b5cb7ab 100644
+--- a/drivers/usb/storage/uas.c
++++ b/drivers/usb/storage/uas.c
+@@ -800,7 +800,6 @@ static int uas_slave_configure(struct scsi_device *sdev)
+ if (devinfo->flags & US_FL_BROKEN_FUA)
+ sdev->broken_fua = 1;
+
+- scsi_change_queue_depth(sdev, devinfo->qdepth - 2);
+ return 0;
+ }
+
+@@ -932,6 +931,12 @@ static int uas_probe(struct usb_interface *intf, const struct usb_device_id *id)
+ if (result)
+ goto set_alt0;
+
++ /*
++ * 1 tag is reserved for untagged commands +
++ * 1 tag to avoid of by one errors in some bridge firmwares
++ */
++ shost->can_queue = devinfo->qdepth - 2;
++
+ usb_set_intfdata(intf, shost);
+ result = scsi_add_host(shost, &intf->dev);
+ if (result)
+--
+2.7.3
+