]> www.infradead.org Git - users/hch/block.git/commitdiff
mspro_block: pass queue_limits to blk_mq_alloc_disk
authorChristoph Hellwig <hch@lst.de>
Thu, 6 Jul 2023 18:51:53 +0000 (11:51 -0700)
committerChristoph Hellwig <hch@lst.de>
Tue, 13 Feb 2024 17:28:21 +0000 (18:28 +0100)
Pass the few limits mspro_block imposes directly to blk_mq_alloc_disk
instead of setting them one at a time.

Signed-off-by: Christoph Hellwig <hch@lst.de>
drivers/memstick/core/mspro_block.c

index db0e2a42ca3c32fee6cec526358b1014bdfd0572..49accfdc89d616cea5eb307a56ce85f68b2b5c6e 100644 (file)
@@ -1103,6 +1103,12 @@ static const struct blk_mq_ops mspro_mq_ops = {
 static int mspro_block_init_disk(struct memstick_dev *card)
 {
        struct mspro_block_data *msb = memstick_get_drvdata(card);
+       struct queue_limits lim = {
+               .logical_block_size     = msb->page_size,
+               .max_hw_sectors         = MSPRO_BLOCK_MAX_PAGES,
+               .max_segments           = MSPRO_BLOCK_MAX_SEGS,
+               .max_segment_size       = MSPRO_BLOCK_MAX_PAGES * msb->page_size,
+       };
        struct mspro_devinfo *dev_info = NULL;
        struct mspro_sys_info *sys_info = NULL;
        struct mspro_sys_attr *s_attr = NULL;
@@ -1138,18 +1144,13 @@ static int mspro_block_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, MSPRO_BLOCK_MAX_PAGES);
-       blk_queue_max_segments(msb->queue, MSPRO_BLOCK_MAX_SEGS);
-       blk_queue_max_segment_size(msb->queue,
-                                  MSPRO_BLOCK_MAX_PAGES * msb->page_size);
-
        msb->disk->major = major;
        msb->disk->first_minor = disk_id << MSPRO_BLOCK_PART_SHIFT;
        msb->disk->minors = 1 << MSPRO_BLOCK_PART_SHIFT;
@@ -1158,8 +1159,6 @@ static int mspro_block_init_disk(struct memstick_dev *card)
 
        sprintf(msb->disk->disk_name, "mspblk%d", disk_id);
 
-       blk_queue_logical_block_size(msb->queue, msb->page_size);
-
        capacity = be16_to_cpu(sys_info->user_block_count);
        capacity *= be16_to_cpu(sys_info->block_size);
        capacity *= msb->page_size >> 9;