mirror of
https://github.com/torvalds/linux.git
synced 2024-11-18 10:01:43 +00:00
ca7d9515d0
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>
119 lines
3.5 KiB
C
119 lines
3.5 KiB
C
// SPDX-License-Identifier: GPL-2.0+
|
|
/*
|
|
* Driver for USB Attached SCSI devices - Unusual Devices File
|
|
*
|
|
* (c) 2013 Hans de Goede <hdegoede@redhat.com>
|
|
*
|
|
* Based on the same file for the usb-storage driver, which is:
|
|
* (c) 2000-2002 Matthew Dharm (mdharm-usb@one-eyed-alien.net)
|
|
* (c) 2000 Adam J. Richter (adam@yggdrasil.com), Yggdrasil Computing, Inc.
|
|
*/
|
|
|
|
/*
|
|
* IMPORTANT NOTE: This file must be included in another file which defines
|
|
* a UNUSUAL_DEV macro before this file is included.
|
|
*/
|
|
|
|
/*
|
|
* If you edit this file, please try to keep it sorted first by VendorID,
|
|
* then by ProductID.
|
|
*
|
|
* If you want to add an entry for this file, be sure to include the
|
|
* following information:
|
|
* - a patch that adds the entry for your device, including your
|
|
* email address right above the entry (plus maybe a brief
|
|
* explanation of the reason for the entry),
|
|
* - lsusb -v output for the device
|
|
* Send your submission to Hans de Goede <hdegoede@redhat.com>
|
|
* and don't forget to CC: the USB development list <linux-usb@vger.kernel.org>
|
|
*/
|
|
|
|
/*
|
|
* Apricorn USB3 dongle sometimes returns "USBSUSBSUSBS" in response to SCSI
|
|
* commands in UAS mode. Observed with the 1.28 firmware; are there others?
|
|
*/
|
|
UNUSUAL_DEV(0x0984, 0x0301, 0x0128, 0x0128,
|
|
"Apricorn",
|
|
"",
|
|
USB_SC_DEVICE, USB_PR_DEVICE, NULL,
|
|
US_FL_IGNORE_UAS),
|
|
|
|
/* Reported-by: David Webb <djw@noc.ac.uk> */
|
|
UNUSUAL_DEV(0x0bc2, 0x331a, 0x0000, 0x9999,
|
|
"Seagate",
|
|
"Expansion Desk",
|
|
USB_SC_DEVICE, USB_PR_DEVICE, NULL,
|
|
US_FL_NO_REPORT_LUNS),
|
|
|
|
/* Reported-by: Benjamin Tissoires <benjamin.tissoires@redhat.com> */
|
|
UNUSUAL_DEV(0x13fd, 0x3940, 0x0000, 0x9999,
|
|
"Initio Corporation",
|
|
"INIC-3069",
|
|
USB_SC_DEVICE, USB_PR_DEVICE, NULL,
|
|
US_FL_NO_ATA_1X | US_FL_IGNORE_RESIDUE),
|
|
|
|
/* Reported-by: Tom Arild Naess <tanaess@gmail.com> */
|
|
UNUSUAL_DEV(0x152d, 0x0539, 0x0000, 0x9999,
|
|
"JMicron",
|
|
"JMS539",
|
|
USB_SC_DEVICE, USB_PR_DEVICE, NULL,
|
|
US_FL_NO_REPORT_OPCODES),
|
|
|
|
/* Reported-by: Claudio Bizzarri <claudio.bizzarri@gmail.com> */
|
|
UNUSUAL_DEV(0x152d, 0x0567, 0x0000, 0x9999,
|
|
"JMicron",
|
|
"JMS567",
|
|
USB_SC_DEVICE, USB_PR_DEVICE, NULL,
|
|
US_FL_BROKEN_FUA | US_FL_NO_REPORT_OPCODES),
|
|
|
|
/* Reported-by: David Kozub <zub@linux.fjfi.cvut.cz> */
|
|
UNUSUAL_DEV(0x152d, 0x0578, 0x0000, 0x9999,
|
|
"JMicron",
|
|
"JMS567",
|
|
USB_SC_DEVICE, USB_PR_DEVICE, NULL,
|
|
US_FL_BROKEN_FUA),
|
|
|
|
/* Reported-by: Hans de Goede <hdegoede@redhat.com> */
|
|
UNUSUAL_DEV(0x2109, 0x0711, 0x0000, 0x9999,
|
|
"VIA",
|
|
"VL711",
|
|
USB_SC_DEVICE, USB_PR_DEVICE, NULL,
|
|
US_FL_NO_ATA_1X),
|
|
|
|
/* Reported-by: Icenowy Zheng <icenowy@aosc.io> */
|
|
UNUSUAL_DEV(0x2537, 0x1068, 0x0000, 0x9999,
|
|
"Norelsys",
|
|
"NS1068X",
|
|
USB_SC_DEVICE, USB_PR_DEVICE, NULL,
|
|
US_FL_IGNORE_UAS),
|
|
|
|
/* Reported-by: Takeo Nakayama <javhera@gmx.com> */
|
|
UNUSUAL_DEV(0x357d, 0x7788, 0x0000, 0x9999,
|
|
"JMicron",
|
|
"JMS566",
|
|
USB_SC_DEVICE, USB_PR_DEVICE, NULL,
|
|
US_FL_NO_REPORT_OPCODES),
|
|
|
|
/* Reported-by: Hans de Goede <hdegoede@redhat.com> */
|
|
UNUSUAL_DEV(0x4971, 0x1012, 0x0000, 0x9999,
|
|
"Hitachi",
|
|
"External HDD",
|
|
USB_SC_DEVICE, USB_PR_DEVICE, NULL,
|
|
US_FL_IGNORE_UAS),
|
|
|
|
/* Reported-by: Richard Henderson <rth@redhat.com> */
|
|
UNUSUAL_DEV(0x4971, 0x8017, 0x0000, 0x9999,
|
|
"SimpleTech",
|
|
"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),
|