Message ID | 20240402130645.653507-23-hch@lst.de (mailing list archive) |
---|---|
State | Accepted |
Commit | 84a44a8125742bfa4cdb209d20f50763cafcb103 |
Headers | show |
Series | [01/23] block: add a helper to cancel atomic queue limit updates | expand |
On 4/2/24 15:06, Christoph Hellwig wrote: > 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> > --- > drivers/usb/storage/uas.c | 16 ++++++++-------- > 1 file changed, 8 insertions(+), 8 deletions(-) > Reviewed-by: Hannes Reinecke <hare@suse.de> Cheers, Hannes
On Tue, Apr 02, 2024 at 03:06:44PM +0200, Christoph Hellwig wrote: > 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> > --- > drivers/usb/storage/uas.c | 16 ++++++++-------- > 1 file changed, 8 insertions(+), 8 deletions(-) Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
diff --git a/drivers/usb/storage/uas.c b/drivers/usb/storage/uas.c index ca6d01fc4b9456..a48870a87a293c 100644 --- a/drivers/usb/storage/uas.c +++ b/drivers/usb/storage/uas.c @@ -821,19 +821,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; @@ -898,7 +898,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,