On Wed, Jun 12, 2024 at 09:52:49AM -0700, Bart Van Assche wrote:
Recently it was reported that the following USB storage devices are unusable with Linux kernel 6.9:
- Kingston DataTraveler G2
- Garmin FR35
This is because attempting to read the IO hint VPD page causes these devices to reset. Hence do not read the IO hint VPD page from USB storage devices.
Cc: Alan Stern stern@rowland.harvard.edu Cc: linux-usb@vger.kernel.org Cc: Joao Machado jocrismachado@gmail.com Cc: Andy Shevchenko andy.shevchenko@gmail.com Cc: Christian Heusel christian@heusel.eu Cc: stable@vger.kernel.org Fixes: 4f53138fffc2 ("scsi: sd: Translate data lifetime information") Reported-by: Joao Machado jocrismachado@gmail.com Closes: https://lore.kernel.org/linux-scsi/20240130214911.1863909-1-bvanassche@acm.o... Tested-by: Andy Shevchenko andy.shevchenko@gmail.com Bisected-by: Christian Heusel christian@heusel.eu Reported-by: Andy Shevchenko andy.shevchenko@gmail.com Closes: https://lore.kernel.org/linux-scsi/CACLx9VdpUanftfPo2jVAqXdcWe8Y43MsDeZmMPoo... Signed-off-by: Bart Van Assche bvanassche@acm.org
drivers/usb/storage/scsiglue.c | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/drivers/usb/storage/scsiglue.c b/drivers/usb/storage/scsiglue.c index b31464740f6c..9a7185c68872 100644 --- a/drivers/usb/storage/scsiglue.c +++ b/drivers/usb/storage/scsiglue.c @@ -79,6 +79,8 @@ static int slave_alloc (struct scsi_device *sdev) if (us->protocol == USB_PR_BULK && us->max_lun > 0) sdev->sdev_bflags |= BLIST_FORCELUN;
- sdev->sdev_bflags |= BLIST_SKIP_IO_HINTS;
- return 0;
}
You might want to do the same thing in uas.c. I don't know if UAS devices suffer from the same problem, but it wouldn't be surprising if they do.
Alan Stern