]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
USB: storage: include US_FL_NO_SAME in quirks mask
authorXu Rao <raoxu@uniontech.com>
Tue, 2 Jun 2026 05:38:42 +0000 (13:38 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 25 Jun 2026 14:11:05 +0000 (15:11 +0100)
usb_stor_adjust_quirks() parses the usb-storage.quirks module
parameter into a new flag set and then applies it with the quirk
mask to override built-in flags.

The mask is meant to cover the flags that can be overridden by
the module parameter. The 'k' quirk character sets US_FL_NO_SAME,
but US_FL_NO_SAME is not included in the mask.

As a result, the module parameter can set US_FL_NO_SAME, but it
cannot clear a built-in US_FL_NO_SAME flag by providing an override
entry that omits 'k'.

Add US_FL_NO_SAME to the mask so that the module parameter can
override it in the same way as the other supported flags.

Fixes: 8010622c86ca ("USB: UAS: introduce a quirk to set no_write_same")
Cc: stable <stable@kernel.org>
Signed-off-by: Xu Rao <raoxu@uniontech.com>
Reviewed-by: Alan Stern <stern@rowland.harvard.edu>
Link: https://patch.msgid.link/3BCE5880F9A45C2E+20260602053842.2920137-1-raoxu@uniontech.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/storage/usb.c

index fa83fe0defe2dacf13d37919ca5e91b696d2ad69..064c7fc8e368a832e5f43079d212ff4f83d2dcf8 100644 (file)
@@ -570,7 +570,7 @@ void usb_stor_adjust_quirks(struct usb_device *udev, u64 *fflags)
                        US_FL_INITIAL_READ10 | US_FL_WRITE_CACHE |
                        US_FL_NO_ATA_1X | US_FL_NO_REPORT_OPCODES |
                        US_FL_MAX_SECTORS_240 | US_FL_NO_REPORT_LUNS |
-                       US_FL_ALWAYS_SYNC);
+                       US_FL_ALWAYS_SYNC | US_FL_NO_SAME);
 
        p = quirks;
        while (*p) {