USB: uas: honor flag to avoid CAPACITY16
authorOliver Neukum <oneukum@suse.com>
Thu, 14 Nov 2019 11:27:56 +0000 (12:27 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 21 Dec 2019 09:41:45 +0000 (10:41 +0100)
commit bff000cae1eec750d62e265c4ba2db9af57b17e1 upstream.

Copy the support over from usb-storage to get feature parity

Signed-off-by: Oliver Neukum <oneukum@suse.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20191114112758.32747-2-oneukum@suse.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/storage/uas.c

index 597bc550034f911e5ae1f9ae1080834d04c3cbd0..0f21a2832ca63a51164c3135d008f0951e1bc5e1 100644 (file)
@@ -832,6 +832,10 @@ static int uas_slave_configure(struct scsi_device *sdev)
                sdev->wce_default_on = 1;
        }
 
+       /* Some disks cannot handle READ_CAPACITY_16 */
+       if (devinfo->flags & US_FL_NO_READ_CAPACITY_16)
+               sdev->no_read_capacity_16 = 1;
+
        /*
         * Some disks return the total number of blocks in response
         * to READ CAPACITY rather than the highest block number.