[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH 07/30] ms_block: use blk_mq_alloc_disk
On Wed, 2 Jun 2021 at 08:54, Christoph Hellwig <hch@xxxxxx> wrote: > > Use the blk_mq_alloc_disk API to simplify the gendisk and request_queue > allocation. > > Signed-off-by: Christoph Hellwig <hch@xxxxxx> Acked-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx> Kind regards Uffe > --- > drivers/memstick/core/ms_block.c | 25 ++++++++++--------------- > 1 file changed, 10 insertions(+), 15 deletions(-) > > diff --git a/drivers/memstick/core/ms_block.c > b/drivers/memstick/core/ms_block.c > index 0bacf4268f83..dac258d12aca 100644 > --- a/drivers/memstick/core/ms_block.c > +++ b/drivers/memstick/core/ms_block.c > @@ -2110,21 +2110,17 @@ static int msb_init_disk(struct memstick_dev *card) > if (msb->disk_id < 0) > return msb->disk_id; > > - msb->disk = alloc_disk(0); > - if (!msb->disk) { > - rc = -ENOMEM; > + rc = blk_mq_alloc_sq_tag_set(&msb->tag_set, &msb_mq_ops, 2, > + BLK_MQ_F_SHOULD_MERGE); > + if (rc) > goto out_release_id; > - } > > - msb->queue = blk_mq_init_sq_queue(&msb->tag_set, &msb_mq_ops, 2, > - BLK_MQ_F_SHOULD_MERGE); > - if (IS_ERR(msb->queue)) { > - rc = PTR_ERR(msb->queue); > - msb->queue = NULL; > - goto out_put_disk; > + msb->disk = blk_mq_alloc_disk(&msb->tag_set, card); > + if (IS_ERR(msb->disk)) { > + rc = PTR_ERR(msb->disk); > + goto out_free_tag_set; > } > - > - msb->queue->queuedata = card; > + 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); > @@ -2135,7 +2131,6 @@ static int msb_init_disk(struct memstick_dev *card) > sprintf(msb->disk->disk_name, "msblk%d", msb->disk_id); > msb->disk->fops = &msb_bdops; > msb->disk->private_data = msb; > - msb->disk->queue = msb->queue; > > capacity = msb->pages_in_block * msb->logical_block_count; > capacity *= (msb->page_size / 512); > @@ -2155,8 +2150,8 @@ static int msb_init_disk(struct memstick_dev *card) > dbg("Disk added"); > return 0; > > -out_put_disk: > - put_disk(msb->disk); > +out_free_tag_set: > + blk_mq_free_tag_set(&msb->tag_set); > out_release_id: > mutex_lock(&msb_disk_lock); > idr_remove(&msb_disk_idr, msb->disk_id); > -- > 2.30.2 >
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |