scsi: uas: Switch to using ->device_configure to configure queue limits
authorChristoph Hellwig <hch@lst.de>
Tue, 9 Apr 2024 14:37:47 +0000 (16:37 +0200)
committerMartin K. Petersen <martin.petersen@oracle.com>
Fri, 12 Apr 2024 10:32:01 +0000 (06:32 -0400)
Switch to the ->device_configure method instead of ->slave_alloc and update
the block limits on the passed in queue_limits instead of using the
per-limit accessors.

Note that uas was the only driver setting these size limits from
->slave_alloc and not ->slave_configure and this makes it match everyone
else.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Link: https://lore.kernel.org/r/20240409143748.980206-23-hch@lst.de
Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/usb/storage/uas.c

index 0668182e1c469c0f4e7fc888c64bb4cb33c8c8d4..738c183ccada8dcb9a7b3258349b1c79f92f7f18 100644 (file)
@@ -823,19 +823,19 @@ static int uas_slave_alloc(struct scsi_device *sdev)
                (struct uas_dev_info *)sdev->host->hostdata;
 
        sdev->hostdata = devinfo;
-
-       if (devinfo->flags & US_FL_MAX_SECTORS_64)
-               blk_queue_max_hw_sectors(sdev->request_queue, 64);
-       else if (devinfo->flags & US_FL_MAX_SECTORS_240)
-               blk_queue_max_hw_sectors(sdev->request_queue, 240);
-
        return 0;
 }
 
-static int uas_slave_configure(struct scsi_device *sdev)
+static int uas_device_configure(struct scsi_device *sdev,
+               struct queue_limits *lim)
 {
        struct uas_dev_info *devinfo = sdev->hostdata;
 
+       if (devinfo->flags & US_FL_MAX_SECTORS_64)
+               lim->max_hw_sectors = 64;
+       else if (devinfo->flags & US_FL_MAX_SECTORS_240)
+               lim->max_hw_sectors = 240;
+
        if (devinfo->flags & US_FL_NO_REPORT_OPCODES)
                sdev->no_report_opcodes = 1;
 
@@ -900,7 +900,7 @@ static const struct scsi_host_template uas_host_template = {
        .queuecommand = uas_queuecommand,
        .target_alloc = uas_target_alloc,
        .slave_alloc = uas_slave_alloc,
-       .slave_configure = uas_slave_configure,
+       .device_configure = uas_device_configure,
        .eh_abort_handler = uas_eh_abort_handler,
        .eh_device_reset_handler = uas_eh_device_reset_handler,
        .this_id = -1,