]> www.infradead.org Git - users/hch/block.git/commitdiff
uas: switch to using ->device_configure to configure queue limits
authorChristoph Hellwig <hch@lst.de>
Fri, 22 Mar 2024 10:00:49 +0000 (21:00 +1100)
committerChristoph Hellwig <hch@lst.de>
Tue, 9 Apr 2024 05:42:40 +0000 (07:42 +0200)
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>
Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
Reviewed-by: Hannes Reinecke <hare@suse.de>
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,