]>
Commit | Line | Data |
---|---|---|
f1f201fe GKH |
1 | From 8c4e97ddfe73a0958bb0abf7e6a3bc4cc3e04936 Mon Sep 17 00:00:00 2001 |
2 | From: Alexander Kappner <agk@godking.net> | |
3 | Date: Fri, 18 May 2018 21:50:15 -0700 | |
4 | Subject: usb-storage: Add support for FL_ALWAYS_SYNC flag in the UAS driver | |
5 | ||
6 | From: Alexander Kappner <agk@godking.net> | |
7 | ||
8 | commit 8c4e97ddfe73a0958bb0abf7e6a3bc4cc3e04936 upstream. | |
9 | ||
10 | The ALWAYS_SYNC flag is currently honored by the usb-storage driver but not UAS | |
11 | and is required to work around devices that become unstable upon being | |
12 | queried for cache. This code is taken straight from: | |
13 | drivers/usb/storage/scsiglue.c:284 | |
14 | ||
15 | Signed-off-by: Alexander Kappner <agk@godking.net> | |
16 | Acked-by: Alan Stern <stern@rowland.harvard.edu> | |
17 | Cc: stable <stable@vger.kernel.org> | |
18 | Acked-by: Oliver Neukum <oneukum@suse.com> | |
19 | Signed-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 | } |