+++ /dev/null
-From ca7d9515d0e6825351ce106066cea1f60e40b1c8 Mon Sep 17 00:00:00 2001
-From: Alexander Kappner <agk@godking.net>
-Date: Fri, 18 May 2018 21:50:16 -0700
-Subject: usb-storage: Add compatibility quirk flags for G-Technologies G-Drive
-
-From: Alexander Kappner <agk@godking.net>
-
-commit ca7d9515d0e6825351ce106066cea1f60e40b1c8 upstream.
-
-The "G-Drive" (sold by G-Technology) external USB 3.0 drive
- hangs on write access under UAS and usb-storage:
-
-[ 136.079121] sd 15:0:0:0: [sdi] tag#0 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
-[ 136.079144] sd 15:0:0:0: [sdi] tag#0 Sense Key : Illegal Request [current]
-[ 136.079152] sd 15:0:0:0: [sdi] tag#0 Add. Sense: Invalid field in cdb
-[ 136.079176] sd 15:0:0:0: [sdi] tag#0 CDB: Write(16) 8a 08 00 00 00 00 00 00 00 00 00 00 00 08 00 00
-[ 136.079180] print_req_error: critical target error, dev sdi, sector 0
-[ 136.079183] Buffer I/O error on dev sdi, logical block 0, lost sync page write
-[ 136.173148] EXT4-fs (sdi): mounted filesystem with ordered data mode. Opts: (null)
-[ 140.583998] sd 15:0:0:0: [sdi] tag#0 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
-[ 140.584010] sd 15:0:0:0: [sdi] tag#0 Sense Key : Illegal Request [current]
-[ 140.584016] sd 15:0:0:0: [sdi] tag#0 Add. Sense: Invalid field in cdb
-[ 140.584022] sd 15:0:0:0: [sdi] tag#0 CDB: Write(16) 8a 08 00 00 00 00 e8 c4 00 18 00 00 00 08 00 00
-[ 140.584025] print_req_error: critical target error, dev sdi, sector 3905159192
-[ 140.584044] print_req_error: critical target error, dev sdi, sector 3905159192
-[ 140.584052] Aborting journal on device sdi-8.
-
-The proposed patch adds compatibility quirks. Because the drive requires two
-quirks (one to work with UAS, and another to work with usb-storage), adding this
-under unusual_devs.h and not just unusual_uas.h so kernels compiled without UAS
-receive the quirk. With the patch, the drive works reliably on UAS and usb-
-storage.
-(tested on NEC Corporation uPD720200 USB 3.0 host controller).
-
-Signed-off-by: Alexander Kappner <agk@godking.net>
-Acked-by: Alan Stern <stern@rowland.harvard.edu>
-Cc: stable <stable@vger.kernel.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- drivers/usb/storage/unusual_devs.h | 9 +++++++++
- drivers/usb/storage/unusual_uas.h | 9 +++++++++
- 2 files changed, 18 insertions(+)
-
---- a/drivers/usb/storage/unusual_devs.h
-+++ b/drivers/usb/storage/unusual_devs.h
-@@ -2213,6 +2213,15 @@ UNUSUAL_DEV( 0x4146, 0xba01, 0x0100, 0x
- "Micro Mini 1GB",
- USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_NOT_LOCKABLE ),
-
-+/* "G-DRIVE" external HDD hangs on write without these.
-+ * Patch submitted by Alexander Kappner <agk@godking.net>
-+ */
-+UNUSUAL_DEV(0x4971, 0x8024, 0x0000, 0x9999,
-+ "SimpleTech",
-+ "External HDD",
-+ USB_SC_DEVICE, USB_PR_DEVICE, NULL,
-+ US_FL_ALWAYS_SYNC),
-+
- /*
- * Nick Bowler <nbowler@elliptictech.com>
- * SCSI stack spams (otherwise harmless) error messages.
---- a/drivers/usb/storage/unusual_uas.h
-+++ b/drivers/usb/storage/unusual_uas.h
-@@ -182,3 +182,12 @@ UNUSUAL_DEV(0x4971, 0x8017, 0x0000, 0x99
- "External HDD",
- USB_SC_DEVICE, USB_PR_DEVICE, NULL,
- US_FL_NO_REPORT_OPCODES),
-+
-+/* "G-DRIVE" external HDD hangs on write without these.
-+ * Patch submitted by Alexander Kappner <agk@godking.net>
-+ */
-+UNUSUAL_DEV(0x4971, 0x8024, 0x0000, 0x9999,
-+ "SimpleTech",
-+ "External HDD",
-+ USB_SC_DEVICE, USB_PR_DEVICE, NULL,
-+ US_FL_ALWAYS_SYNC),
+++ /dev/null
-From 8c4e97ddfe73a0958bb0abf7e6a3bc4cc3e04936 Mon Sep 17 00:00:00 2001
-From: Alexander Kappner <agk@godking.net>
-Date: Fri, 18 May 2018 21:50:15 -0700
-Subject: usb-storage: Add support for FL_ALWAYS_SYNC flag in the UAS driver
-
-From: Alexander Kappner <agk@godking.net>
-
-commit 8c4e97ddfe73a0958bb0abf7e6a3bc4cc3e04936 upstream.
-
-The ALWAYS_SYNC flag is currently honored by the usb-storage driver but not UAS
-and is required to work around devices that become unstable upon being
-queried for cache. This code is taken straight from:
-drivers/usb/storage/scsiglue.c:284
-
-Signed-off-by: Alexander Kappner <agk@godking.net>
-Acked-by: Alan Stern <stern@rowland.harvard.edu>
-Cc: stable <stable@vger.kernel.org>
-Acked-by: Oliver Neukum <oneukum@suse.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- drivers/usb/storage/uas.c | 6 ++++++
- 1 file changed, 6 insertions(+)
-
---- a/drivers/usb/storage/uas.c
-+++ b/drivers/usb/storage/uas.c
-@@ -811,6 +811,12 @@ static int uas_slave_configure(struct sc
- if (devinfo->flags & US_FL_BROKEN_FUA)
- sdev->broken_fua = 1;
-
-+ /* UAS also needs to support FL_ALWAYS_SYNC */
-+ if (devinfo->flags & US_FL_ALWAYS_SYNC) {
-+ sdev->skip_ms_page_3f = 1;
-+ sdev->skip_ms_page_8 = 1;
-+ sdev->wce_default_on = 1;
-+ }
- scsi_change_queue_depth(sdev, devinfo->qdepth - 2);
- return 0;
- }