Re: [PATCH 07/30] ms_block: use blk_mq_alloc_disk
- To: Christoph Hellwig <hch@lst.de>
- Cc: Jens Axboe <axboe@kernel.dk>, Justin Sanders <justin@coraid.com>, Denis Efremov <efremov@linux.com>, Josef Bacik <josef@toxicpanda.com>, Tim Waugh <tim@cyberelk.net>, Geoff Levand <geoff@infradead.org>, Ilya Dryomov <idryomov@gmail.com>, "Md. Haris Iqbal" <haris.iqbal@ionos.com>, Jack Wang <jinpu.wang@ionos.com>, "Michael S. Tsirkin" <mst@redhat.com>, Jason Wang <jasowang@redhat.com>, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>, Roger Pau Monné <roger.pau@citrix.com>, Mike Snitzer <snitzer@redhat.com>, Maxim Levitsky <maximlevitsky@gmail.com>, Alex Dubov <oakad@yahoo.com>, Miquel Raynal <miquel.raynal@bootlin.com>, Richard Weinberger <richard@nod.at>, Vignesh Raghavendra <vigneshr@ti.com>, Heiko Carstens <hca@linux.ibm.com>, Vasily Gorbik <gor@linux.ibm.com>, Christian Borntraeger <borntraeger@de.ibm.com>, dm-devel@redhat.com, linux-block <linux-block@vger.kernel.org>, nbd@other.debian.org, linuxppc-dev <linuxppc-dev@lists.ozlabs.org>, ceph-devel@vger.kernel.org, virtualization@lists.linux-foundation.org, xen-devel@lists.xenproject.org, linux-mmc <linux-mmc@vger.kernel.org>, linux-mtd@lists.infradead.org, linux-s390@vger.kernel.org
- Subject: Re: [PATCH 07/30] ms_block: use blk_mq_alloc_disk
- From: Ulf Hansson <ulf.hansson@linaro.org>
- Date: Thu, 3 Jun 2021 17:36:42 +0200
- Message-id: <[🔎] CAPDyKFoJssCnHv5tmG4vJJ9m0Zj5HkMEVYvnsjamvyemusZaUg@mail.gmail.com>
- In-reply-to: <[🔎] 20210602065345.355274-8-hch@lst.de>
- References: <[🔎] 20210602065345.355274-1-hch@lst.de> <[🔎] 20210602065345.355274-8-hch@lst.de>
On Wed, 2 Jun 2021 at 08:54, Christoph Hellwig <hch@lst.de> wrote:
>
> Use the blk_mq_alloc_disk API to simplify the gendisk and request_queue
> allocation.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
Acked-by: Ulf Hansson <ulf.hansson@linaro.org>
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
>
Reply to: