ms_block: pass queue_limits to blk_mq_alloc_disk
authorChristoph Hellwig <hch@lst.de>
Thu, 15 Feb 2024 07:02:54 +0000 (08:02 +0100)
committerJens Axboe <axboe@kernel.dk>
Mon, 19 Feb 2024 23:59:31 +0000 (16:59 -0700)
Pass the few limits ms_block imposes directly to blk_mq_alloc_disk
instead of setting them one at a time.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Link: https://lore.kernel.org/r/20240215070300.2200308-12-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/memstick/core/ms_block.c

index d3277c901d16bb90f3d45789357a70b01c207ac7..47a314a4eb6fafc76482ff3010b35298d3423ec7 100644 (file)
@@ -2078,6 +2078,12 @@ static const struct blk_mq_ops msb_mq_ops = {
 static int msb_init_disk(struct memstick_dev *card)
 {
        struct msb_data *msb = memstick_get_drvdata(card);
+       struct queue_limits lim = {
+               .logical_block_size     = msb->page_size,
+               .max_hw_sectors         = MS_BLOCK_MAX_PAGES,
+               .max_segments           = MS_BLOCK_MAX_SEGS,
+               .max_segment_size       = MS_BLOCK_MAX_PAGES * msb->page_size,
+       };
        int rc;
        unsigned long capacity;
 
@@ -2093,19 +2099,13 @@ static int msb_init_disk(struct memstick_dev *card)
        if (rc)
                goto out_release_id;
 
-       msb->disk = blk_mq_alloc_disk(&msb->tag_set, NULL, card);
+       msb->disk = blk_mq_alloc_disk(&msb->tag_set, &lim, card);
        if (IS_ERR(msb->disk)) {
                rc = PTR_ERR(msb->disk);
                goto out_free_tag_set;
        }
        msb->queue = msb->disk->queue;
 
-       blk_queue_max_hw_sectors(msb->queue, MS_BLOCK_MAX_PAGES);
-       blk_queue_max_segments(msb->queue, MS_BLOCK_MAX_SEGS);
-       blk_queue_max_segment_size(msb->queue,
-                                  MS_BLOCK_MAX_PAGES * msb->page_size);
-       blk_queue_logical_block_size(msb->queue, msb->page_size);
-
        sprintf(msb->disk->disk_name, "msblk%d", msb->disk_id);
        msb->disk->fops = &msb_bdops;
        msb->disk->private_data = msb;