Commit 9f633ecd authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Jens Axboe

mspro_block: pass queue_limits to blk_mq_alloc_disk

Pass the few limits mspro_block imposes directly to blk_mq_alloc_disk
instead of setting them one at a time.
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Link: https://lore.kernel.org/r/20240215070300.2200308-13-hch@lst.deSigned-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent f93b43ae
...@@ -1103,6 +1103,12 @@ static const struct blk_mq_ops mspro_mq_ops = { ...@@ -1103,6 +1103,12 @@ static const struct blk_mq_ops mspro_mq_ops = {
static int mspro_block_init_disk(struct memstick_dev *card) static int mspro_block_init_disk(struct memstick_dev *card)
{ {
struct mspro_block_data *msb = memstick_get_drvdata(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_devinfo *dev_info = NULL;
struct mspro_sys_info *sys_info = NULL; struct mspro_sys_info *sys_info = NULL;
struct mspro_sys_attr *s_attr = NULL; struct mspro_sys_attr *s_attr = NULL;
...@@ -1138,18 +1144,13 @@ static int mspro_block_init_disk(struct memstick_dev *card) ...@@ -1138,18 +1144,13 @@ static int mspro_block_init_disk(struct memstick_dev *card)
if (rc) if (rc)
goto out_release_id; 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)) { if (IS_ERR(msb->disk)) {
rc = PTR_ERR(msb->disk); rc = PTR_ERR(msb->disk);
goto out_free_tag_set; goto out_free_tag_set;
} }
msb->queue = msb->disk->queue; 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->major = major;
msb->disk->first_minor = disk_id << MSPRO_BLOCK_PART_SHIFT; msb->disk->first_minor = disk_id << MSPRO_BLOCK_PART_SHIFT;
msb->disk->minors = 1 << 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) ...@@ -1158,8 +1159,6 @@ static int mspro_block_init_disk(struct memstick_dev *card)
sprintf(msb->disk->disk_name, "mspblk%d", disk_id); 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->user_block_count);
capacity *= be16_to_cpu(sys_info->block_size); capacity *= be16_to_cpu(sys_info->block_size);
capacity *= msb->page_size >> 9; capacity *= msb->page_size >> 9;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment