All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marek Szyprowski <m.szyprowski@samsung.com>
To: Christoph Hellwig <hch@lst.de>, Jens Axboe <axboe@kernel.dk>
Cc: "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@vger.kernel.org,
	nbd@other.debian.org, linuxppc-dev@lists.ozlabs.org,
	ceph-devel@vger.kernel.org,
	virtualization@lists.linux-foundation.org,
	xen-devel@lists.xenproject.org, linux-mmc@vger.kernel.org,
	linux-mtd@lists.infradead.org, linux-s390@vger.kernel.org,
	"Bartlomiej Zolnierkiewicz" <b.zolnierkie@samsung.com>
Subject: Re: [PATCH 09/30] mtd_blkdevs: use blk_mq_alloc_disk
Date: Tue, 15 Jun 2021 17:47:44 +0200	[thread overview]
Message-ID: <13b21a07-b7c7-37db-fdc9-77bf174b6f8f@samsung.com> (raw)
In-Reply-To: <20210602065345.355274-10-hch@lst.de>

Hi,

On 02.06.2021 08:53, Christoph Hellwig wrote:
> Use the blk_mq_alloc_disk API to simplify the gendisk and request_queue
> allocation.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>

This patch landed in linux-next as commit 6966bb921def ("mtd_blkdevs: 
use blk_mq_alloc_disk"). It causes the following regression on my QEMU 
arm64 setup:

  Using buffer write method
  Concatenating MTD devices:
  (0): "0.flash"
  (1): "0.flash"
  into device "0.flash"
  Unable to handle kernel NULL pointer dereference at virtual address 
0000000000000068
  Mem abort info:
    ESR = 0x96000004
    EC = 0x25: DABT (current EL), IL = 32 bits
    SET = 0, FnV = 0
    EA = 0, S1PTW = 0
  Data abort info:
    ISV = 0, ISS = 0x00000004
    CM = 0, WnR = 0
  [0000000000000068] user address but active_mm is swapper
  Internal error: Oops: 96000004 [#1] PREEMPT SMP
  Modules linked in:
  CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.13.0-rc3+ #10492
  Hardware name: linux,dummy-virt (DT)
  pstate: 00000005 (nzcv daif -PAN -UAO -TCO BTYPE=--)
  pc : blk_finish_plug+0x5c/0x268
  lr : blk_queue_write_cache+0x28/0x70
...
  Call trace:
   blk_finish_plug+0x5c/0x268
   add_mtd_blktrans_dev+0x270/0x420
   mtdblock_add_mtd+0x68/0x98
   blktrans_notify_add+0x44/0x70
   add_mtd_device+0x41c/0x490
   mtd_device_parse_register+0xf4/0x1c8
   physmap_flash_probe+0x44c/0x780
   platform_probe+0x90/0xd8
   really_probe+0x108/0x3c0
   driver_probe_device+0x60/0xc0
   device_driver_attach+0x6c/0x78
   __driver_attach+0xc0/0x100
   bus_for_each_dev+0x68/0xc8
   driver_attach+0x20/0x28
   bus_add_driver+0x168/0x1f8
   driver_register+0x60/0x110
   __platform_driver_register+0x24/0x30
   physmap_init+0x18/0x20
   do_one_initcall+0x84/0x450
   kernel_init_freeable+0x2dc/0x334
   kernel_init+0x10/0x110
   ret_from_fork+0x10/0x18
  Code: 88027c01 35ffffa2 17fff079 f9800031 (c85f7c22)
  ---[ end trace b774518e0766cc92 ]---
  Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
  SMP: stopping secondary CPUs
  Kernel Offset: 0x594d1fa00000 from 0xffff800010000000
  PHYS_OFFSET: 0xffffea7300000000
  CPU features: 0x11000671,00000846
  Memory Limit: none
  ---[ end Kernel panic - not syncing: Attempted to kill init! 
exitcode=0x0000000b ]---

> ---
>   drivers/mtd/mtd_blkdevs.c | 48 ++++++++++++++++++---------------------
>   1 file changed, 22 insertions(+), 26 deletions(-)
>
> diff --git a/drivers/mtd/mtd_blkdevs.c b/drivers/mtd/mtd_blkdevs.c
> index fb8e12d590a1..5dc4c966ea73 100644
> --- a/drivers/mtd/mtd_blkdevs.c
> +++ b/drivers/mtd/mtd_blkdevs.c
> @@ -30,11 +30,9 @@ static void blktrans_dev_release(struct kref *kref)
>   	struct mtd_blktrans_dev *dev =
>   		container_of(kref, struct mtd_blktrans_dev, ref);
>   
> -	dev->disk->private_data = NULL;
> -	blk_cleanup_queue(dev->rq);
> +	blk_cleanup_disk(dev->disk);
>   	blk_mq_free_tag_set(dev->tag_set);
>   	kfree(dev->tag_set);
> -	put_disk(dev->disk);
>   	list_del(&dev->list);
>   	kfree(dev);
>   }
> @@ -354,7 +352,7 @@ int add_mtd_blktrans_dev(struct mtd_blktrans_dev *new)
>   	if (new->devnum > (MINORMASK >> tr->part_bits) ||
>   	    (tr->part_bits && new->devnum >= 27 * 26)) {
>   		mutex_unlock(&blktrans_ref_mutex);
> -		goto error1;
> +		return ret;
>   	}
>   
>   	list_add_tail(&new->list, &tr->devs);
> @@ -366,17 +364,28 @@ int add_mtd_blktrans_dev(struct mtd_blktrans_dev *new)
>   	if (!tr->writesect)
>   		new->readonly = 1;
>   
> -	/* Create gendisk */
>   	ret = -ENOMEM;
> -	gd = alloc_disk(1 << tr->part_bits);
> +	new->tag_set = kzalloc(sizeof(*new->tag_set), GFP_KERNEL);
> +	if (!new->tag_set)
> +		goto out_list_del;
>   
> -	if (!gd)
> -		goto error2;
> +	ret = blk_mq_alloc_sq_tag_set(new->tag_set, &mtd_mq_ops, 2,
> +			BLK_MQ_F_SHOULD_MERGE | BLK_MQ_F_BLOCKING);
> +	if (ret)
> +		goto out_kfree_tag_set;
> +
> +	/* Create gendisk */
> +	gd = blk_mq_alloc_disk(new->tag_set, new);
> +	if (IS_ERR(gd)) {
> +		ret = PTR_ERR(gd);
> +		goto out_free_tag_set;
> +	}
>   
>   	new->disk = gd;
>   	gd->private_data = new;
>   	gd->major = tr->major;
>   	gd->first_minor = (new->devnum) << tr->part_bits;
> +	gd->minors = 1 << tr->part_bits;
>   	gd->fops = &mtd_block_ops;
>   
>   	if (tr->part_bits)
> @@ -398,22 +407,9 @@ int add_mtd_blktrans_dev(struct mtd_blktrans_dev *new)
>   	spin_lock_init(&new->queue_lock);
>   	INIT_LIST_HEAD(&new->rq_list);
>   
> -	new->tag_set = kzalloc(sizeof(*new->tag_set), GFP_KERNEL);
> -	if (!new->tag_set)
> -		goto error3;
> -
> -	new->rq = blk_mq_init_sq_queue(new->tag_set, &mtd_mq_ops, 2,
> -				BLK_MQ_F_SHOULD_MERGE | BLK_MQ_F_BLOCKING);
> -	if (IS_ERR(new->rq)) {
> -		ret = PTR_ERR(new->rq);
> -		new->rq = NULL;
> -		goto error4;
> -	}
> -
>   	if (tr->flush)
>   		blk_queue_write_cache(new->rq, true, false);
>   
> -	new->rq->queuedata = new;
>   	blk_queue_logical_block_size(new->rq, tr->blksize);
>   
>   	blk_queue_flag_set(QUEUE_FLAG_NONROT, new->rq);
> @@ -437,13 +433,13 @@ int add_mtd_blktrans_dev(struct mtd_blktrans_dev *new)
>   		WARN_ON(ret);
>   	}
>   	return 0;
> -error4:
> +
> +out_free_tag_set:
> +	blk_mq_free_tag_set(new->tag_set);
> +out_kfree_tag_set:
>   	kfree(new->tag_set);
> -error3:
> -	put_disk(new->disk);
> -error2:
> +out_list_del:
>   	list_del(&new->list);
> -error1:
>   	return ret;
>   }
>   

Best regards
-- 
Marek Szyprowski, PhD
Samsung R&D Institute Poland


WARNING: multiple messages have this Message-ID (diff)
From: Marek Szyprowski <m.szyprowski@samsung.com>
To: Christoph Hellwig <hch@lst.de>, Jens Axboe <axboe@kernel.dk>
Cc: "Justin Sanders" <justin@coraid.com>,
	"Vignesh Raghavendra" <vigneshr@ti.com>,
	"Mike Snitzer" <snitzer@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	"Jason Wang" <jasowang@redhat.com>,
	virtualization@lists.linux-foundation.org, dm-devel@redhat.com,
	"Md. Haris Iqbal" <haris.iqbal@ionos.com>,
	"Miquel Raynal" <miquel.raynal@bootlin.com>,
	"Jack Wang" <jinpu.wang@ionos.com>,
	"Tim Waugh" <tim@cyberelk.net>,
	linux-s390@vger.kernel.org, "Alex Dubov" <oakad@yahoo.com>,
	"Richard Weinberger" <richard@nod.at>,
	"Bartlomiej Zolnierkiewicz" <b.zolnierkie@samsung.com>,
	"Christian Borntraeger" <borntraeger@de.ibm.com>,
	xen-devel@lists.xenproject.org,
	"Ilya Dryomov" <idryomov@gmail.com>,
	"Vasily Gorbik" <gor@linux.ibm.com>,
	"Konrad Rzeszutek Wilk" <konrad.wilk@oracle.com>,
	"Heiko Carstens" <hca@linux.ibm.com>,
	"Josef Bacik" <josef@toxicpanda.com>,
	"Denis Efremov" <efremov@linux.com>,
	nbd@other.debian.org, linux-block@vger.kernel.org,
	ceph-devel@vger.kernel.org,
	"Maxim Levitsky" <maximlevitsky@gmail.com>,
	"Geoff Levand" <geoff@infradead.org>,
	linux-mmc@vger.kernel.org, linux-mtd@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	"Roger Pau Monné" <roger.pau@citrix.com>
Subject: Re: [PATCH 09/30] mtd_blkdevs: use blk_mq_alloc_disk
Date: Tue, 15 Jun 2021 17:47:44 +0200	[thread overview]
Message-ID: <13b21a07-b7c7-37db-fdc9-77bf174b6f8f@samsung.com> (raw)
In-Reply-To: <20210602065345.355274-10-hch@lst.de>

Hi,

On 02.06.2021 08:53, Christoph Hellwig wrote:
> Use the blk_mq_alloc_disk API to simplify the gendisk and request_queue
> allocation.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>

This patch landed in linux-next as commit 6966bb921def ("mtd_blkdevs: 
use blk_mq_alloc_disk"). It causes the following regression on my QEMU 
arm64 setup:

  Using buffer write method
  Concatenating MTD devices:
  (0): "0.flash"
  (1): "0.flash"
  into device "0.flash"
  Unable to handle kernel NULL pointer dereference at virtual address 
0000000000000068
  Mem abort info:
    ESR = 0x96000004
    EC = 0x25: DABT (current EL), IL = 32 bits
    SET = 0, FnV = 0
    EA = 0, S1PTW = 0
  Data abort info:
    ISV = 0, ISS = 0x00000004
    CM = 0, WnR = 0
  [0000000000000068] user address but active_mm is swapper
  Internal error: Oops: 96000004 [#1] PREEMPT SMP
  Modules linked in:
  CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.13.0-rc3+ #10492
  Hardware name: linux,dummy-virt (DT)
  pstate: 00000005 (nzcv daif -PAN -UAO -TCO BTYPE=--)
  pc : blk_finish_plug+0x5c/0x268
  lr : blk_queue_write_cache+0x28/0x70
...
  Call trace:
   blk_finish_plug+0x5c/0x268
   add_mtd_blktrans_dev+0x270/0x420
   mtdblock_add_mtd+0x68/0x98
   blktrans_notify_add+0x44/0x70
   add_mtd_device+0x41c/0x490
   mtd_device_parse_register+0xf4/0x1c8
   physmap_flash_probe+0x44c/0x780
   platform_probe+0x90/0xd8
   really_probe+0x108/0x3c0
   driver_probe_device+0x60/0xc0
   device_driver_attach+0x6c/0x78
   __driver_attach+0xc0/0x100
   bus_for_each_dev+0x68/0xc8
   driver_attach+0x20/0x28
   bus_add_driver+0x168/0x1f8
   driver_register+0x60/0x110
   __platform_driver_register+0x24/0x30
   physmap_init+0x18/0x20
   do_one_initcall+0x84/0x450
   kernel_init_freeable+0x2dc/0x334
   kernel_init+0x10/0x110
   ret_from_fork+0x10/0x18
  Code: 88027c01 35ffffa2 17fff079 f9800031 (c85f7c22)
  ---[ end trace b774518e0766cc92 ]---
  Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
  SMP: stopping secondary CPUs
  Kernel Offset: 0x594d1fa00000 from 0xffff800010000000
  PHYS_OFFSET: 0xffffea7300000000
  CPU features: 0x11000671,00000846
  Memory Limit: none
  ---[ end Kernel panic - not syncing: Attempted to kill init! 
exitcode=0x0000000b ]---

> ---
>   drivers/mtd/mtd_blkdevs.c | 48 ++++++++++++++++++---------------------
>   1 file changed, 22 insertions(+), 26 deletions(-)
>
> diff --git a/drivers/mtd/mtd_blkdevs.c b/drivers/mtd/mtd_blkdevs.c
> index fb8e12d590a1..5dc4c966ea73 100644
> --- a/drivers/mtd/mtd_blkdevs.c
> +++ b/drivers/mtd/mtd_blkdevs.c
> @@ -30,11 +30,9 @@ static void blktrans_dev_release(struct kref *kref)
>   	struct mtd_blktrans_dev *dev =
>   		container_of(kref, struct mtd_blktrans_dev, ref);
>   
> -	dev->disk->private_data = NULL;
> -	blk_cleanup_queue(dev->rq);
> +	blk_cleanup_disk(dev->disk);
>   	blk_mq_free_tag_set(dev->tag_set);
>   	kfree(dev->tag_set);
> -	put_disk(dev->disk);
>   	list_del(&dev->list);
>   	kfree(dev);
>   }
> @@ -354,7 +352,7 @@ int add_mtd_blktrans_dev(struct mtd_blktrans_dev *new)
>   	if (new->devnum > (MINORMASK >> tr->part_bits) ||
>   	    (tr->part_bits && new->devnum >= 27 * 26)) {
>   		mutex_unlock(&blktrans_ref_mutex);
> -		goto error1;
> +		return ret;
>   	}
>   
>   	list_add_tail(&new->list, &tr->devs);
> @@ -366,17 +364,28 @@ int add_mtd_blktrans_dev(struct mtd_blktrans_dev *new)
>   	if (!tr->writesect)
>   		new->readonly = 1;
>   
> -	/* Create gendisk */
>   	ret = -ENOMEM;
> -	gd = alloc_disk(1 << tr->part_bits);
> +	new->tag_set = kzalloc(sizeof(*new->tag_set), GFP_KERNEL);
> +	if (!new->tag_set)
> +		goto out_list_del;
>   
> -	if (!gd)
> -		goto error2;
> +	ret = blk_mq_alloc_sq_tag_set(new->tag_set, &mtd_mq_ops, 2,
> +			BLK_MQ_F_SHOULD_MERGE | BLK_MQ_F_BLOCKING);
> +	if (ret)
> +		goto out_kfree_tag_set;
> +
> +	/* Create gendisk */
> +	gd = blk_mq_alloc_disk(new->tag_set, new);
> +	if (IS_ERR(gd)) {
> +		ret = PTR_ERR(gd);
> +		goto out_free_tag_set;
> +	}
>   
>   	new->disk = gd;
>   	gd->private_data = new;
>   	gd->major = tr->major;
>   	gd->first_minor = (new->devnum) << tr->part_bits;
> +	gd->minors = 1 << tr->part_bits;
>   	gd->fops = &mtd_block_ops;
>   
>   	if (tr->part_bits)
> @@ -398,22 +407,9 @@ int add_mtd_blktrans_dev(struct mtd_blktrans_dev *new)
>   	spin_lock_init(&new->queue_lock);
>   	INIT_LIST_HEAD(&new->rq_list);
>   
> -	new->tag_set = kzalloc(sizeof(*new->tag_set), GFP_KERNEL);
> -	if (!new->tag_set)
> -		goto error3;
> -
> -	new->rq = blk_mq_init_sq_queue(new->tag_set, &mtd_mq_ops, 2,
> -				BLK_MQ_F_SHOULD_MERGE | BLK_MQ_F_BLOCKING);
> -	if (IS_ERR(new->rq)) {
> -		ret = PTR_ERR(new->rq);
> -		new->rq = NULL;
> -		goto error4;
> -	}
> -
>   	if (tr->flush)
>   		blk_queue_write_cache(new->rq, true, false);
>   
> -	new->rq->queuedata = new;
>   	blk_queue_logical_block_size(new->rq, tr->blksize);
>   
>   	blk_queue_flag_set(QUEUE_FLAG_NONROT, new->rq);
> @@ -437,13 +433,13 @@ int add_mtd_blktrans_dev(struct mtd_blktrans_dev *new)
>   		WARN_ON(ret);
>   	}
>   	return 0;
> -error4:
> +
> +out_free_tag_set:
> +	blk_mq_free_tag_set(new->tag_set);
> +out_kfree_tag_set:
>   	kfree(new->tag_set);
> -error3:
> -	put_disk(new->disk);
> -error2:
> +out_list_del:
>   	list_del(&new->list);
> -error1:
>   	return ret;
>   }
>   

Best regards
-- 
Marek Szyprowski, PhD
Samsung R&D Institute Poland


WARNING: multiple messages have this Message-ID (diff)
From: Marek Szyprowski <m.szyprowski@samsung.com>
To: Christoph Hellwig <hch@lst.de>, Jens Axboe <axboe@kernel.dk>
Cc: "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@vger.kernel.org,
	nbd@other.debian.org, linuxppc-dev@lists.ozlabs.org,
	ceph-devel@vger.kernel.org,
	virtualization@lists.linux-foundation.org,
	xen-devel@lists.xenproject.org, linux-mmc@vger.kernel.org,
	linux-mtd@lists.infradead.org, linux-s390@vger.kernel.org,
	"Bartlomiej Zolnierkiewicz" <b.zolnierkie@samsung.com>
Subject: Re: [PATCH 09/30] mtd_blkdevs: use blk_mq_alloc_disk
Date: Tue, 15 Jun 2021 17:47:44 +0200	[thread overview]
Message-ID: <13b21a07-b7c7-37db-fdc9-77bf174b6f8f@samsung.com> (raw)
In-Reply-To: <20210602065345.355274-10-hch@lst.de>

Hi,

On 02.06.2021 08:53, Christoph Hellwig wrote:
> Use the blk_mq_alloc_disk API to simplify the gendisk and request_queue
> allocation.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>

This patch landed in linux-next as commit 6966bb921def ("mtd_blkdevs: 
use blk_mq_alloc_disk"). It causes the following regression on my QEMU 
arm64 setup:

  Using buffer write method
  Concatenating MTD devices:
  (0): "0.flash"
  (1): "0.flash"
  into device "0.flash"
  Unable to handle kernel NULL pointer dereference at virtual address 
0000000000000068
  Mem abort info:
    ESR = 0x96000004
    EC = 0x25: DABT (current EL), IL = 32 bits
    SET = 0, FnV = 0
    EA = 0, S1PTW = 0
  Data abort info:
    ISV = 0, ISS = 0x00000004
    CM = 0, WnR = 0
  [0000000000000068] user address but active_mm is swapper
  Internal error: Oops: 96000004 [#1] PREEMPT SMP
  Modules linked in:
  CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.13.0-rc3+ #10492
  Hardware name: linux,dummy-virt (DT)
  pstate: 00000005 (nzcv daif -PAN -UAO -TCO BTYPE=--)
  pc : blk_finish_plug+0x5c/0x268
  lr : blk_queue_write_cache+0x28/0x70
...
  Call trace:
   blk_finish_plug+0x5c/0x268
   add_mtd_blktrans_dev+0x270/0x420
   mtdblock_add_mtd+0x68/0x98
   blktrans_notify_add+0x44/0x70
   add_mtd_device+0x41c/0x490
   mtd_device_parse_register+0xf4/0x1c8
   physmap_flash_probe+0x44c/0x780
   platform_probe+0x90/0xd8
   really_probe+0x108/0x3c0
   driver_probe_device+0x60/0xc0
   device_driver_attach+0x6c/0x78
   __driver_attach+0xc0/0x100
   bus_for_each_dev+0x68/0xc8
   driver_attach+0x20/0x28
   bus_add_driver+0x168/0x1f8
   driver_register+0x60/0x110
   __platform_driver_register+0x24/0x30
   physmap_init+0x18/0x20
   do_one_initcall+0x84/0x450
   kernel_init_freeable+0x2dc/0x334
   kernel_init+0x10/0x110
   ret_from_fork+0x10/0x18
  Code: 88027c01 35ffffa2 17fff079 f9800031 (c85f7c22)
  ---[ end trace b774518e0766cc92 ]---
  Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
  SMP: stopping secondary CPUs
  Kernel Offset: 0x594d1fa00000 from 0xffff800010000000
  PHYS_OFFSET: 0xffffea7300000000
  CPU features: 0x11000671,00000846
  Memory Limit: none
  ---[ end Kernel panic - not syncing: Attempted to kill init! 
exitcode=0x0000000b ]---

> ---
>   drivers/mtd/mtd_blkdevs.c | 48 ++++++++++++++++++---------------------
>   1 file changed, 22 insertions(+), 26 deletions(-)
>
> diff --git a/drivers/mtd/mtd_blkdevs.c b/drivers/mtd/mtd_blkdevs.c
> index fb8e12d590a1..5dc4c966ea73 100644
> --- a/drivers/mtd/mtd_blkdevs.c
> +++ b/drivers/mtd/mtd_blkdevs.c
> @@ -30,11 +30,9 @@ static void blktrans_dev_release(struct kref *kref)
>   	struct mtd_blktrans_dev *dev =
>   		container_of(kref, struct mtd_blktrans_dev, ref);
>   
> -	dev->disk->private_data = NULL;
> -	blk_cleanup_queue(dev->rq);
> +	blk_cleanup_disk(dev->disk);
>   	blk_mq_free_tag_set(dev->tag_set);
>   	kfree(dev->tag_set);
> -	put_disk(dev->disk);
>   	list_del(&dev->list);
>   	kfree(dev);
>   }
> @@ -354,7 +352,7 @@ int add_mtd_blktrans_dev(struct mtd_blktrans_dev *new)
>   	if (new->devnum > (MINORMASK >> tr->part_bits) ||
>   	    (tr->part_bits && new->devnum >= 27 * 26)) {
>   		mutex_unlock(&blktrans_ref_mutex);
> -		goto error1;
> +		return ret;
>   	}
>   
>   	list_add_tail(&new->list, &tr->devs);
> @@ -366,17 +364,28 @@ int add_mtd_blktrans_dev(struct mtd_blktrans_dev *new)
>   	if (!tr->writesect)
>   		new->readonly = 1;
>   
> -	/* Create gendisk */
>   	ret = -ENOMEM;
> -	gd = alloc_disk(1 << tr->part_bits);
> +	new->tag_set = kzalloc(sizeof(*new->tag_set), GFP_KERNEL);
> +	if (!new->tag_set)
> +		goto out_list_del;
>   
> -	if (!gd)
> -		goto error2;
> +	ret = blk_mq_alloc_sq_tag_set(new->tag_set, &mtd_mq_ops, 2,
> +			BLK_MQ_F_SHOULD_MERGE | BLK_MQ_F_BLOCKING);
> +	if (ret)
> +		goto out_kfree_tag_set;
> +
> +	/* Create gendisk */
> +	gd = blk_mq_alloc_disk(new->tag_set, new);
> +	if (IS_ERR(gd)) {
> +		ret = PTR_ERR(gd);
> +		goto out_free_tag_set;
> +	}
>   
>   	new->disk = gd;
>   	gd->private_data = new;
>   	gd->major = tr->major;
>   	gd->first_minor = (new->devnum) << tr->part_bits;
> +	gd->minors = 1 << tr->part_bits;
>   	gd->fops = &mtd_block_ops;
>   
>   	if (tr->part_bits)
> @@ -398,22 +407,9 @@ int add_mtd_blktrans_dev(struct mtd_blktrans_dev *new)
>   	spin_lock_init(&new->queue_lock);
>   	INIT_LIST_HEAD(&new->rq_list);
>   
> -	new->tag_set = kzalloc(sizeof(*new->tag_set), GFP_KERNEL);
> -	if (!new->tag_set)
> -		goto error3;
> -
> -	new->rq = blk_mq_init_sq_queue(new->tag_set, &mtd_mq_ops, 2,
> -				BLK_MQ_F_SHOULD_MERGE | BLK_MQ_F_BLOCKING);
> -	if (IS_ERR(new->rq)) {
> -		ret = PTR_ERR(new->rq);
> -		new->rq = NULL;
> -		goto error4;
> -	}
> -
>   	if (tr->flush)
>   		blk_queue_write_cache(new->rq, true, false);
>   
> -	new->rq->queuedata = new;
>   	blk_queue_logical_block_size(new->rq, tr->blksize);
>   
>   	blk_queue_flag_set(QUEUE_FLAG_NONROT, new->rq);
> @@ -437,13 +433,13 @@ int add_mtd_blktrans_dev(struct mtd_blktrans_dev *new)
>   		WARN_ON(ret);
>   	}
>   	return 0;
> -error4:
> +
> +out_free_tag_set:
> +	blk_mq_free_tag_set(new->tag_set);
> +out_kfree_tag_set:
>   	kfree(new->tag_set);
> -error3:
> -	put_disk(new->disk);
> -error2:
> +out_list_del:
>   	list_del(&new->list);
> -error1:
>   	return ret;
>   }
>   

Best regards
-- 
Marek Szyprowski, PhD
Samsung R&D Institute Poland


______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

WARNING: multiple messages have this Message-ID (diff)
From: Marek Szyprowski <m.szyprowski@samsung.com>
To: Christoph Hellwig <hch@lst.de>, Jens Axboe <axboe@kernel.dk>
Cc: "Justin Sanders" <justin@coraid.com>,
	Raghavendra <vigneshr@ti.com>,
	"Mike Snitzer" <snitzer@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	"Jason Wang" <jasowang@redhat.com>,
	virtualization@lists.linux-foundation.org,
	"Md. Haris Iqbal" <haris.iqbal@ionos.com>,
	"Miquel Raynal" <miquel.raynal@bootlin.com>,
	"Jack Wang" <jinpu.wang@ionos.com>,
	"Tim Waugh" <tim@cyberelk.net>,
	linux-s390@vger.kernel.org,
	"Maxim Levitsky" <maximlevitsky@gmail.com>,
	"Richard Weinberger" <richard@nod.at>,
	"Bartlomiej Zolnierkiewicz" <b.zolnierkie@samsung.com>,
	"Christian Borntraeger" <borntraeger@de.ibm.com>,
	xen-devel@lists.xenproject.org,
	"Ilya Dryomov" <idryomov@gmail.com>, Gorbik <gor@linux.ibm.com>,
	"Alex Dubov" <oakad@yahoo.com>,
	"Rzeszutek Wilk" <konrad.wilk@oracle.com>,
	"Heiko Carstens" <hca@linux.ibm.com>,
	"Josef Bacik" <josef@toxicpanda.com>,
	"Denis Efremov" <efremov@linux.com>,
	nbd@other.debian.org, linux-block@vger.kernel.org,
	ceph-devel@vger.kernel.org, Levand <geoff@infradead.org>,
	linux-mmc@vger.kernel.org, dm-devel@redhat.com,
	linux-mtd@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
	"Roger Pau Monné" <roger.pau@citrix.com>
Subject: Re: [dm-devel] [PATCH 09/30] mtd_blkdevs: use blk_mq_alloc_disk
Date: Tue, 15 Jun 2021 17:47:44 +0200	[thread overview]
Message-ID: <13b21a07-b7c7-37db-fdc9-77bf174b6f8f@samsung.com> (raw)
In-Reply-To: <20210602065345.355274-10-hch@lst.de>

Hi,

On 02.06.2021 08:53, Christoph Hellwig wrote:
> Use the blk_mq_alloc_disk API to simplify the gendisk and request_queue
> allocation.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>

This patch landed in linux-next as commit 6966bb921def ("mtd_blkdevs: 
use blk_mq_alloc_disk"). It causes the following regression on my QEMU 
arm64 setup:

  Using buffer write method
  Concatenating MTD devices:
  (0): "0.flash"
  (1): "0.flash"
  into device "0.flash"
  Unable to handle kernel NULL pointer dereference at virtual address 
0000000000000068
  Mem abort info:
    ESR = 0x96000004
    EC = 0x25: DABT (current EL), IL = 32 bits
    SET = 0, FnV = 0
    EA = 0, S1PTW = 0
  Data abort info:
    ISV = 0, ISS = 0x00000004
    CM = 0, WnR = 0
  [0000000000000068] user address but active_mm is swapper
  Internal error: Oops: 96000004 [#1] PREEMPT SMP
  Modules linked in:
  CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.13.0-rc3+ #10492
  Hardware name: linux,dummy-virt (DT)
  pstate: 00000005 (nzcv daif -PAN -UAO -TCO BTYPE=--)
  pc : blk_finish_plug+0x5c/0x268
  lr : blk_queue_write_cache+0x28/0x70
...
  Call trace:
   blk_finish_plug+0x5c/0x268
   add_mtd_blktrans_dev+0x270/0x420
   mtdblock_add_mtd+0x68/0x98
   blktrans_notify_add+0x44/0x70
   add_mtd_device+0x41c/0x490
   mtd_device_parse_register+0xf4/0x1c8
   physmap_flash_probe+0x44c/0x780
   platform_probe+0x90/0xd8
   really_probe+0x108/0x3c0
   driver_probe_device+0x60/0xc0
   device_driver_attach+0x6c/0x78
   __driver_attach+0xc0/0x100
   bus_for_each_dev+0x68/0xc8
   driver_attach+0x20/0x28
   bus_add_driver+0x168/0x1f8
   driver_register+0x60/0x110
   __platform_driver_register+0x24/0x30
   physmap_init+0x18/0x20
   do_one_initcall+0x84/0x450
   kernel_init_freeable+0x2dc/0x334
   kernel_init+0x10/0x110
   ret_from_fork+0x10/0x18
  Code: 88027c01 35ffffa2 17fff079 f9800031 (c85f7c22)
  ---[ end trace b774518e0766cc92 ]---
  Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
  SMP: stopping secondary CPUs
  Kernel Offset: 0x594d1fa00000 from 0xffff800010000000
  PHYS_OFFSET: 0xffffea7300000000
  CPU features: 0x11000671,00000846
  Memory Limit: none
  ---[ end Kernel panic - not syncing: Attempted to kill init! 
exitcode=0x0000000b ]---

> ---
>   drivers/mtd/mtd_blkdevs.c | 48 ++++++++++++++++++---------------------
>   1 file changed, 22 insertions(+), 26 deletions(-)
>
> diff --git a/drivers/mtd/mtd_blkdevs.c b/drivers/mtd/mtd_blkdevs.c
> index fb8e12d590a1..5dc4c966ea73 100644
> --- a/drivers/mtd/mtd_blkdevs.c
> +++ b/drivers/mtd/mtd_blkdevs.c
> @@ -30,11 +30,9 @@ static void blktrans_dev_release(struct kref *kref)
>   	struct mtd_blktrans_dev *dev =
>   		container_of(kref, struct mtd_blktrans_dev, ref);
>   
> -	dev->disk->private_data = NULL;
> -	blk_cleanup_queue(dev->rq);
> +	blk_cleanup_disk(dev->disk);
>   	blk_mq_free_tag_set(dev->tag_set);
>   	kfree(dev->tag_set);
> -	put_disk(dev->disk);
>   	list_del(&dev->list);
>   	kfree(dev);
>   }
> @@ -354,7 +352,7 @@ int add_mtd_blktrans_dev(struct mtd_blktrans_dev *new)
>   	if (new->devnum > (MINORMASK >> tr->part_bits) ||
>   	    (tr->part_bits && new->devnum >= 27 * 26)) {
>   		mutex_unlock(&blktrans_ref_mutex);
> -		goto error1;
> +		return ret;
>   	}
>   
>   	list_add_tail(&new->list, &tr->devs);
> @@ -366,17 +364,28 @@ int add_mtd_blktrans_dev(struct mtd_blktrans_dev *new)
>   	if (!tr->writesect)
>   		new->readonly = 1;
>   
> -	/* Create gendisk */
>   	ret = -ENOMEM;
> -	gd = alloc_disk(1 << tr->part_bits);
> +	new->tag_set = kzalloc(sizeof(*new->tag_set), GFP_KERNEL);
> +	if (!new->tag_set)
> +		goto out_list_del;
>   
> -	if (!gd)
> -		goto error2;
> +	ret = blk_mq_alloc_sq_tag_set(new->tag_set, &mtd_mq_ops, 2,
> +			BLK_MQ_F_SHOULD_MERGE | BLK_MQ_F_BLOCKING);
> +	if (ret)
> +		goto out_kfree_tag_set;
> +
> +	/* Create gendisk */
> +	gd = blk_mq_alloc_disk(new->tag_set, new);
> +	if (IS_ERR(gd)) {
> +		ret = PTR_ERR(gd);
> +		goto out_free_tag_set;
> +	}
>   
>   	new->disk = gd;
>   	gd->private_data = new;
>   	gd->major = tr->major;
>   	gd->first_minor = (new->devnum) << tr->part_bits;
> +	gd->minors = 1 << tr->part_bits;
>   	gd->fops = &mtd_block_ops;
>   
>   	if (tr->part_bits)
> @@ -398,22 +407,9 @@ int add_mtd_blktrans_dev(struct mtd_blktrans_dev *new)
>   	spin_lock_init(&new->queue_lock);
>   	INIT_LIST_HEAD(&new->rq_list);
>   
> -	new->tag_set = kzalloc(sizeof(*new->tag_set), GFP_KERNEL);
> -	if (!new->tag_set)
> -		goto error3;
> -
> -	new->rq = blk_mq_init_sq_queue(new->tag_set, &mtd_mq_ops, 2,
> -				BLK_MQ_F_SHOULD_MERGE | BLK_MQ_F_BLOCKING);
> -	if (IS_ERR(new->rq)) {
> -		ret = PTR_ERR(new->rq);
> -		new->rq = NULL;
> -		goto error4;
> -	}
> -
>   	if (tr->flush)
>   		blk_queue_write_cache(new->rq, true, false);
>   
> -	new->rq->queuedata = new;
>   	blk_queue_logical_block_size(new->rq, tr->blksize);
>   
>   	blk_queue_flag_set(QUEUE_FLAG_NONROT, new->rq);
> @@ -437,13 +433,13 @@ int add_mtd_blktrans_dev(struct mtd_blktrans_dev *new)
>   		WARN_ON(ret);
>   	}
>   	return 0;
> -error4:
> +
> +out_free_tag_set:
> +	blk_mq_free_tag_set(new->tag_set);
> +out_kfree_tag_set:
>   	kfree(new->tag_set);
> -error3:
> -	put_disk(new->disk);
> -error2:
> +out_list_del:
>   	list_del(&new->list);
> -error1:
>   	return ret;
>   }
>   

Best regards
-- 
Marek Szyprowski, PhD
Samsung R&D Institute Poland


--
dm-devel mailing list
dm-devel@redhat.com
https://listman.redhat.com/mailman/listinfo/dm-devel

  parent reply	other threads:[~2021-06-15 15:47 UTC|newest]

Thread overview: 226+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-02  6:53 simplify gendisk and request_queue allocation for blk-mq based drivers Christoph Hellwig
2021-06-02  6:53 ` [dm-devel] " Christoph Hellwig
2021-06-02  6:53 ` Christoph Hellwig
2021-06-02  6:53 ` Christoph Hellwig
2021-06-02  6:53 ` Christoph Hellwig
2021-06-02  6:53 ` [PATCH 01/30] blk-mq: factor out a blk_mq_alloc_sq_tag_set helper Christoph Hellwig
2021-06-02  6:53   ` [dm-devel] " Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53 ` [PATCH 02/30] blk-mq: improve the blk_mq_init_allocated_queue interface Christoph Hellwig
2021-06-02  6:53   ` [dm-devel] " Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53 ` [PATCH 03/30] blk-mq: add the blk_mq_alloc_disk APIs Christoph Hellwig
2021-06-02  6:53   ` [dm-devel] " Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-03  0:03   ` Chaitanya Kulkarni
2021-06-03  0:03     ` [dm-devel] " Chaitanya Kulkarni
2021-06-03  0:03     ` Chaitanya Kulkarni
2021-06-03  0:03     ` Chaitanya Kulkarni
2021-06-02  6:53 ` [PATCH 04/30] virtio-blk: use blk_mq_alloc_disk Christoph Hellwig
2021-06-02  6:53   ` [dm-devel] " Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53 ` [PATCH 05/30] pcd: " Christoph Hellwig
2021-06-02  6:53   ` [dm-devel] " Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53 ` [PATCH 06/30] pf: " Christoph Hellwig
2021-06-02  6:53   ` [dm-devel] " Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53 ` [PATCH 07/30] ms_block: " Christoph Hellwig
2021-06-02  6:53   ` [dm-devel] " Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-03 15:36   ` Ulf Hansson
2021-06-03 15:36     ` [dm-devel] " Ulf Hansson
2021-06-03 15:36     ` Ulf Hansson
2021-06-03 15:36     ` Ulf Hansson
2021-06-03 15:36     ` Ulf Hansson
2021-06-02  6:53 ` [PATCH 08/30] mspro: " Christoph Hellwig
2021-06-02  6:53   ` [dm-devel] " Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-03 15:36   ` Ulf Hansson
2021-06-03 15:36     ` [dm-devel] " Ulf Hansson
2021-06-03 15:36     ` Ulf Hansson
2021-06-03 15:36     ` Ulf Hansson
2021-06-03 15:36     ` Ulf Hansson
2021-06-02  6:53 ` [PATCH 09/30] mtd_blkdevs: " Christoph Hellwig
2021-06-02  6:53   ` [dm-devel] " Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
     [not found]   ` <CGME20210615154746eucas1p1321b6f1cf38d21899632e132cf025e61@eucas1p1.samsung.com>
2021-06-15 15:47     ` Marek Szyprowski [this message]
2021-06-15 15:47       ` [dm-devel] " Marek Szyprowski
2021-06-15 15:47       ` Marek Szyprowski
2021-06-15 15:47       ` Marek Szyprowski
2021-06-15 15:58       ` Christoph Hellwig
2021-06-15 15:58         ` [dm-devel] " Christoph Hellwig
2021-06-15 15:58         ` Christoph Hellwig
2021-06-15 15:58         ` Christoph Hellwig
2021-06-15 15:58         ` Christoph Hellwig
2021-06-15 16:28         ` Marek Szyprowski
2021-06-15 16:28           ` [dm-devel] " Marek Szyprowski
2021-06-15 16:28           ` Marek Szyprowski
2021-06-15 16:28           ` Marek Szyprowski
2021-06-02  6:53 ` [PATCH 10/30] ps3disk: " Christoph Hellwig
2021-06-02  6:53   ` [dm-devel] " Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-06 15:58   ` Geoff Levand
2021-06-06 15:58     ` [dm-devel] " Geoff Levand
2021-06-06 15:58     ` Geoff Levand
2021-06-06 15:58     ` Geoff Levand
2021-06-02  6:53 ` [PATCH 11/30] swim3: " Christoph Hellwig
2021-06-02  6:53   ` [dm-devel] " Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53 ` [PATCH 12/30] swim: " Christoph Hellwig
2021-06-02  6:53   ` [dm-devel] " Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53 ` [PATCH 13/30] sunvdc: " Christoph Hellwig
2021-06-02  6:53   ` [dm-devel] " Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53 ` [PATCH 14/30] gdrom: " Christoph Hellwig
2021-06-02  6:53   ` [dm-devel] " Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53 ` [PATCH 15/30] blk-mq: remove blk_mq_init_sq_queue Christoph Hellwig
2021-06-02  6:53   ` [dm-devel] " Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-03  0:04   ` Chaitanya Kulkarni
2021-06-03  0:04     ` [dm-devel] " Chaitanya Kulkarni
2021-06-03  0:04     ` Chaitanya Kulkarni
2021-06-03  0:04     ` Chaitanya Kulkarni
2021-06-02  6:53 ` [PATCH 16/30] aoe: use blk_mq_alloc_disk and blk_cleanup_disk Christoph Hellwig
2021-06-02  6:53   ` [dm-devel] " Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53 ` [PATCH 17/30] floppy: " Christoph Hellwig
2021-06-02  6:53   ` [dm-devel] " Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53 ` [PATCH 18/30] loop: " Christoph Hellwig
2021-06-02  6:53   ` [dm-devel] " Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-03  0:05   ` Chaitanya Kulkarni
2021-06-03  0:05     ` [dm-devel] " Chaitanya Kulkarni
2021-06-03  0:05     ` Chaitanya Kulkarni
2021-06-03  0:05     ` Chaitanya Kulkarni
2021-06-02  6:53 ` [PATCH 19/30] nbd: " Christoph Hellwig
2021-06-02  6:53   ` [dm-devel] " Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53 ` [PATCH 20/30] nullb: use blk_mq_alloc_disk Christoph Hellwig
2021-06-02  6:53   ` [dm-devel] " Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-03  0:10   ` Chaitanya Kulkarni
2021-06-03  0:10     ` [dm-devel] " Chaitanya Kulkarni
2021-06-03  0:10     ` Chaitanya Kulkarni
2021-06-03  0:10     ` Chaitanya Kulkarni
2021-06-08  5:39     ` Christoph Hellwig
2021-06-08  5:39       ` [dm-devel] " Christoph Hellwig
2021-06-08  5:39       ` Christoph Hellwig
2021-06-08  5:39       ` Christoph Hellwig
2021-06-08  5:39       ` Christoph Hellwig
2021-06-02  6:53 ` [PATCH 21/30] pd: use blk_mq_alloc_disk and blk_cleanup_disk Christoph Hellwig
2021-06-02  6:53   ` [dm-devel] " Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53 ` [PATCH 22/30] rbd: " Christoph Hellwig
2021-06-02  6:53   ` [dm-devel] " Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53 ` [PATCH 23/30] rnbd: " Christoph Hellwig
2021-06-02  6:53   ` [dm-devel] " Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  7:49   ` Jinpu Wang
2021-06-02  7:49     ` [dm-devel] " Jinpu Wang
2021-06-02  7:49     ` Jinpu Wang
2021-06-02  7:49     ` Jinpu Wang
2021-06-02  6:53 ` [PATCH 24/30] sx8: " Christoph Hellwig
2021-06-02  6:53   ` [dm-devel] " Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53 ` [PATCH 25/30] xen-blkfront: " Christoph Hellwig
2021-06-02  6:53   ` [dm-devel] " Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53 ` [PATCH 26/30] ubi: " Christoph Hellwig
2021-06-02  6:53   ` [dm-devel] " Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53 ` [PATCH 27/30] scm_blk: " Christoph Hellwig
2021-06-02  6:53   ` [dm-devel] " Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02 12:02   ` Niklas Schnelle
2021-06-02 12:02     ` [dm-devel] " Niklas Schnelle
2021-06-02 12:02     ` Niklas Schnelle
2021-06-02 12:02     ` Niklas Schnelle
2021-06-02  6:53 ` [PATCH 28/30] amiflop: " Christoph Hellwig
2021-06-02  6:53   ` [dm-devel] " Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53 ` [PATCH 29/30] ataflop: " Christoph Hellwig
2021-06-02  6:53   ` [dm-devel] " Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53 ` [PATCH 30/30] z2ram: " Christoph Hellwig
2021-06-02  6:53   ` [dm-devel] " Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-02  6:53   ` Christoph Hellwig
2021-06-04 15:58 ` simplify gendisk and request_queue allocation for blk-mq based drivers Konrad Rzeszutek Wilk
2021-06-04 15:58   ` [dm-devel] " Konrad Rzeszutek Wilk
2021-06-04 15:58   ` Konrad Rzeszutek Wilk
2021-06-04 15:58   ` Konrad Rzeszutek Wilk
2021-06-04 15:58   ` Konrad Rzeszutek Wilk
2021-06-05 14:02   ` Christoph Hellwig
2021-06-05 14:02     ` [dm-devel] " Christoph Hellwig
2021-06-05 14:02     ` Christoph Hellwig
2021-06-05 14:02     ` Christoph Hellwig
2021-06-05 14:02     ` Christoph Hellwig
2021-06-11 17:55 ` Jens Axboe
2021-06-11 17:55   ` [dm-devel] " Jens Axboe
2021-06-11 17:55   ` Jens Axboe
2021-06-11 17:55   ` Jens Axboe
2021-06-11 17:55   ` Jens Axboe

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=13b21a07-b7c7-37db-fdc9-77bf174b6f8f@samsung.com \
    --to=m.szyprowski@samsung.com \
    --cc=axboe@kernel.dk \
    --cc=b.zolnierkie@samsung.com \
    --cc=borntraeger@de.ibm.com \
    --cc=ceph-devel@vger.kernel.org \
    --cc=dm-devel@redhat.com \
    --cc=efremov@linux.com \
    --cc=geoff@infradead.org \
    --cc=gor@linux.ibm.com \
    --cc=haris.iqbal@ionos.com \
    --cc=hca@linux.ibm.com \
    --cc=hch@lst.de \
    --cc=idryomov@gmail.com \
    --cc=jasowang@redhat.com \
    --cc=jinpu.wang@ionos.com \
    --cc=josef@toxicpanda.com \
    --cc=justin@coraid.com \
    --cc=konrad.wilk@oracle.com \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-mmc@vger.kernel.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=maximlevitsky@gmail.com \
    --cc=miquel.raynal@bootlin.com \
    --cc=mst@redhat.com \
    --cc=nbd@other.debian.org \
    --cc=oakad@yahoo.com \
    --cc=richard@nod.at \
    --cc=roger.pau@citrix.com \
    --cc=snitzer@redhat.com \
    --cc=tim@cyberelk.net \
    --cc=vigneshr@ti.com \
    --cc=virtualization@lists.linux-foundation.org \
    --cc=xen-devel@lists.xenproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.