]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blame - releases/4.17.2/usb-storage-add-support-for-fl_always_sync-flag-in-the-uas-driver.patch
Linux 4.14.121
[thirdparty/kernel/stable-queue.git] / releases / 4.17.2 / usb-storage-add-support-for-fl_always_sync-flag-in-the-uas-driver.patch
CommitLineData
f1f201fe
GKH
1From 8c4e97ddfe73a0958bb0abf7e6a3bc4cc3e04936 Mon Sep 17 00:00:00 2001
2From: Alexander Kappner <agk@godking.net>
3Date: Fri, 18 May 2018 21:50:15 -0700
4Subject: usb-storage: Add support for FL_ALWAYS_SYNC flag in the UAS driver
5
6From: Alexander Kappner <agk@godking.net>
7
8commit 8c4e97ddfe73a0958bb0abf7e6a3bc4cc3e04936 upstream.
9
10The ALWAYS_SYNC flag is currently honored by the usb-storage driver but not UAS
11and is required to work around devices that become unstable upon being
12queried for cache. This code is taken straight from:
13drivers/usb/storage/scsiglue.c:284
14
15Signed-off-by: Alexander Kappner <agk@godking.net>
16Acked-by: Alan Stern <stern@rowland.harvard.edu>
17Cc: stable <stable@vger.kernel.org>
18Acked-by: Oliver Neukum <oneukum@suse.com>
19Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
20
21---
22 drivers/usb/storage/uas.c | 6 ++++++
23 1 file changed, 6 insertions(+)
24
25--- a/drivers/usb/storage/uas.c
26+++ b/drivers/usb/storage/uas.c
27@@ -836,6 +836,12 @@ static int uas_slave_configure(struct sc
28 if (devinfo->flags & US_FL_BROKEN_FUA)
29 sdev->broken_fua = 1;
30
31+ /* UAS also needs to support FL_ALWAYS_SYNC */
32+ if (devinfo->flags & US_FL_ALWAYS_SYNC) {
33+ sdev->skip_ms_page_3f = 1;
34+ sdev->skip_ms_page_8 = 1;
35+ sdev->wce_default_on = 1;
36+ }
37 scsi_change_queue_depth(sdev, devinfo->qdepth - 2);
38 return 0;
39 }