Commit 51ed5bd5 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Jens Axboe

mspro: use blk_mq_alloc_disk

Use the blk_mq_alloc_disk API to simplify the gendisk and request_queue
allocation.
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Acked-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
Reviewed-by: default avatarChaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
Link: https://lore.kernel.org/r/20210602065345.355274-9-hch@lst.deSigned-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent f368b7d7
...@@ -1205,21 +1205,17 @@ static int mspro_block_init_disk(struct memstick_dev *card) ...@@ -1205,21 +1205,17 @@ static int mspro_block_init_disk(struct memstick_dev *card)
if (disk_id < 0) if (disk_id < 0)
return disk_id; return disk_id;
msb->disk = alloc_disk(1 << MSPRO_BLOCK_PART_SHIFT); rc = blk_mq_alloc_sq_tag_set(&msb->tag_set, &mspro_mq_ops, 2,
if (!msb->disk) { BLK_MQ_F_SHOULD_MERGE);
rc = -ENOMEM; if (rc)
goto out_release_id; goto out_release_id;
}
msb->queue = blk_mq_init_sq_queue(&msb->tag_set, &mspro_mq_ops, 2, msb->disk = blk_mq_alloc_disk(&msb->tag_set, card);
BLK_MQ_F_SHOULD_MERGE); if (IS_ERR(msb->disk)) {
if (IS_ERR(msb->queue)) { rc = PTR_ERR(msb->disk);
rc = PTR_ERR(msb->queue); goto out_free_tag_set;
msb->queue = NULL;
goto out_put_disk;
} }
msb->queue = msb->disk->queue;
msb->queue->queuedata = card;
blk_queue_max_hw_sectors(msb->queue, MSPRO_BLOCK_MAX_PAGES); blk_queue_max_hw_sectors(msb->queue, MSPRO_BLOCK_MAX_PAGES);
blk_queue_max_segments(msb->queue, MSPRO_BLOCK_MAX_SEGS); blk_queue_max_segments(msb->queue, MSPRO_BLOCK_MAX_SEGS);
...@@ -1228,10 +1224,10 @@ static int mspro_block_init_disk(struct memstick_dev *card) ...@@ -1228,10 +1224,10 @@ static int mspro_block_init_disk(struct memstick_dev *card)
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->fops = &ms_block_bdops; msb->disk->fops = &ms_block_bdops;
msb->usage_count = 1; msb->usage_count = 1;
msb->disk->private_data = msb; msb->disk->private_data = msb;
msb->disk->queue = msb->queue;
sprintf(msb->disk->disk_name, "mspblk%d", disk_id); sprintf(msb->disk->disk_name, "mspblk%d", disk_id);
...@@ -1247,8 +1243,8 @@ static int mspro_block_init_disk(struct memstick_dev *card) ...@@ -1247,8 +1243,8 @@ static int mspro_block_init_disk(struct memstick_dev *card)
msb->active = 1; msb->active = 1;
return 0; return 0;
out_put_disk: out_free_tag_set:
put_disk(msb->disk); blk_mq_free_tag_set(&msb->tag_set);
out_release_id: out_release_id:
mutex_lock(&mspro_block_disk_lock); mutex_lock(&mspro_block_disk_lock);
idr_remove(&mspro_block_disk_idr, disk_id); idr_remove(&mspro_block_disk_idr, disk_id);
......
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