linux/drivers/usb/storage
Tasos Sahanidis 772685c147 usb-storage: Add quirk for incorrect WP on Kingston DT Ultimate 3.0 G3
This flash drive reports write protect during the first mode sense.

In the past this was not an issue as the kernel called revalidate twice,
thus asking the device for its write protect status twice, with write
protect being disabled in the second mode sense.

However, since commit 1e029397d1 ("scsi: sd: Reorganize DIF/DIX code to
avoid calling revalidate twice") that is no longer the case, thus the
device shows up read only.

[490891.289495] sd 12:0:0:0: [sdl] Write Protect is on
[490891.289497] sd 12:0:0:0: [sdl] Mode Sense: 2b 00 80 08

This does not appear to be a timing issue, as enabling the usbcore quirk
USB_QUIRK_DELAY_INIT has no effect on write protect.

Fixes: 1e029397d1 ("scsi: sd: Reorganize DIF/DIX code to avoid calling revalidate twice")
Cc: stable <stable@kernel.org>
Signed-off-by: Tasos Sahanidis <tasos@tasossah.com>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Link: https://lore.kernel.org/r/20231207134441.298131-1-tasos@tasossah.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2023-12-15 14:00:58 +01:00
..
alauda.c usb-storage: alauda: Fix uninit-value in alauda_check_media() 2023-08-04 14:57:16 +02:00
cypress_atacb.c scsi: core: Remove the cmd field from struct scsi_request 2022-03-01 22:21:49 -05:00
datafab.c usb: storage: datafab: remove redundant assignment of variable result 2021-04-22 10:52:10 +02:00
debug.c scsi: Remove drivers/scsi/scsi.h 2022-02-22 21:11:02 -05:00
debug.h USB: Storage: Use the correct style for SPDX License Identifier 2020-04-23 15:28:14 +02:00
ene_ub6250.c USB: ene_usb6250: Allocate enough memory for full object 2023-02-06 13:46:42 +01:00
freecom.c usb: storage: freecom: remove unneeded break 2020-10-28 12:22:50 +01:00
initializers.c USB: storage: remove invalid URL from drivers 2018-01-23 10:22:34 +01:00
initializers.h USB: Storage: Use the correct style for SPDX License Identifier 2020-04-23 15:28:14 +02:00
isd200.c usb-storage: isd200: fix initFunction error return 2022-04-21 19:02:42 +02:00
jumpshot.c usb-storage: export symbols in USB_STORAGE namespace 2019-09-10 10:30:57 +02:00
karma.c USB: storage: karma: fix rio_karma_init return 2022-04-21 19:03:26 +02:00
Kconfig USB: storage: replace HTTP links with HTTPS ones 2020-07-09 18:06:12 +02:00
Makefile usb-storage: export symbols in USB_STORAGE namespace 2019-09-10 10:30:57 +02:00
onetouch.c usb: move from strlcpy with unused retval to strscpy 2022-08-19 11:08:54 +02:00
option_ms.c USB: storage: Remove redundant license text 2017-11-04 11:55:38 +01:00
option_ms.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
protocol.c USB: storage: remove invalid URL from drivers 2018-01-23 10:22:34 +01:00
protocol.h USB: Storage: Use the correct style for SPDX License Identifier 2020-04-23 15:28:14 +02:00
realtek_cr.c USB: storage: ums-realtek: fix error code in rts51x_read_mem() 2022-03-15 18:21:25 +01:00
scsiglue.c usb-storage: fix deadlock when a scsi command timeouts more than once 2023-05-13 18:53:03 +09:00
scsiglue.h USB: Storage: Use the correct style for SPDX License Identifier 2020-04-23 15:28:14 +02:00
sddr09.c usb-storage: export symbols in USB_STORAGE namespace 2019-09-10 10:30:57 +02:00
sddr55.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
shuttle_usbat.c usb-storage: shuttle_usbat: fix initFunction error return 2022-04-21 19:02:40 +02:00
sierra_ms.c usb-storage: Remove redundant assignments 2021-12-30 12:10:17 +01:00
sierra_ms.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
transport.c USB: storage: Fix typo in comment 2022-06-21 16:39:42 +02:00
transport.h USB: Storage: Use the correct style for SPDX License Identifier 2020-04-23 15:28:14 +02:00
uas-detect.h usb-storage,uas: make internal quirks flags 64bit 2023-10-21 12:45:14 +02:00
uas.c usb-storage,uas: make internal quirks flags 64bit 2023-10-21 12:45:14 +02:00
unusual_alauda.h USB: Storage: Use the correct style for SPDX License Identifier 2020-04-23 15:28:14 +02:00
unusual_cypress.h usb: storage: set 1.50 as the lower bcdDevice for older "Super Top" compatibility 2023-10-28 12:23:41 +02:00
unusual_datafab.h USB: Storage: Use the correct style for SPDX License Identifier 2020-04-23 15:28:14 +02:00
unusual_devs.h usb-storage: Add quirk for incorrect WP on Kingston DT Ultimate 3.0 G3 2023-12-15 14:00:58 +01:00
unusual_ene_ub6250.h USB: Storage: Use the correct style for SPDX License Identifier 2020-04-23 15:28:14 +02:00
unusual_freecom.h USB: Storage: Use the correct style for SPDX License Identifier 2020-04-23 15:28:14 +02:00
unusual_isd200.h USB: Storage: Use the correct style for SPDX License Identifier 2020-04-23 15:28:14 +02:00
unusual_jumpshot.h USB: Storage: Use the correct style for SPDX License Identifier 2020-04-23 15:28:14 +02:00
unusual_karma.h USB: Storage: Use the correct style for SPDX License Identifier 2020-04-23 15:28:14 +02:00
unusual_onetouch.h USB: Storage: Use the correct style for SPDX License Identifier 2020-04-23 15:28:14 +02:00
unusual_realtek.h USB: Storage: Use the correct style for SPDX License Identifier 2020-04-23 15:28:14 +02:00
unusual_sddr09.h USB: Storage: Use the correct style for SPDX License Identifier 2020-04-23 15:28:14 +02:00
unusual_sddr55.h USB: Storage: Use the correct style for SPDX License Identifier 2020-04-23 15:28:14 +02:00
unusual_uas.h uas: Add US_FL_NO_REPORT_OPCODES for JMicron JMS583Gen 2 2023-03-16 12:44:17 +01:00
unusual_usbat.h USB: Storage: Use the correct style for SPDX License Identifier 2020-04-23 15:28:14 +02:00
usb.c usb-storage,uas: make internal quirks flags 64bit 2023-10-21 12:45:14 +02:00
usb.h usb-storage,uas: make internal quirks flags 64bit 2023-10-21 12:45:14 +02:00
usual-tables.c usb-storage,uas: make internal quirks flags 64bit 2023-10-21 12:45:14 +02:00