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
next prev 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.