[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PULL 32/56] hw/block/nvme: split setup and register for namespace
From: |
Klaus Jensen |
Subject: |
Re: [PULL 32/56] hw/block/nvme: split setup and register for namespace |
Date: |
Thu, 11 Feb 2021 11:41:11 +0100 |
On Feb 11 10:53, Alexander Graf wrote:
> Hi Klaus,
>
> On 09.02.21 08:30, Klaus Jensen wrote:
> > From: Minwoo Im <minwoo.im.dev@gmail.com>
> >
> > In NVMe, namespace is being attached to process I/O. We register NVMe
> > namespace to a controller via nvme_register_namespace() during
> > nvme_ns_setup(). This is main reason of receiving NvmeCtrl object
> > instance to this function to map the namespace to a controller.
> >
> > To make namespace instance more independent, it should be split into two
> > parts: setup and register. This patch split them into two differnt
> > parts, and finally nvme_ns_setup() does not have nothing to do with
> > NvmeCtrl instance at all.
> >
> > This patch is a former patch to introduce NVMe subsystem scheme to the
> > existing design especially for multi-path. In that case, it should be
> > split into two to make namespace independent from a controller.
> >
> > Signed-off-by: Minwoo Im <minwoo.im.dev@gmail.com>
> > Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
>
>
> In latest master, I can no longer access NVMe devices from edk2. Git bisect
> pointed me to this commit.
>
Hi Alexander,
Thanks for reporting this. This patch should fix it, I'll queue it up.
diff --git i/hw/block/nvme.c w/hw/block/nvme.c
index 5ce21b7100b3..d36e14fe13e2 100644
--- i/hw/block/nvme.c
+++ w/hw/block/nvme.c
@@ -4507,6 +4507,12 @@ static void nvme_realize(PCIDevice *pci_dev, Error
**errp)
if (nvme_ns_setup(ns, errp)) {
return;
}
+
+ if (nvme_register_namespace(n, ns, errp)) {
+ error_propagate_prepend(errp, local_err,
+ "could not register namespace: ");
+ return;
+ }
}
}
signature.asc
Description: PGP signature
- [PULL 25/56] hw/block/nvme: zero out zones on reset, (continued)
- [PULL 25/56] hw/block/nvme: zero out zones on reset, Klaus Jensen, 2021/02/09
- [PULL 45/56] hw/block/nvme: disable PMR at boot up, Klaus Jensen, 2021/02/09
- [PULL 29/56] hw/block/nvme: remove unused argument in nvme_ns_init_zoned, Klaus Jensen, 2021/02/09
- [PULL 37/56] hw/block/nvme: trigger async event during injecting smart warning, Klaus Jensen, 2021/02/09
- [PULL 44/56] hw/block/nvme: remove redundant zeroing of PMR registers, Klaus Jensen, 2021/02/09
- [PULL 48/56] hw/block/nvme: bump to v1.4, Klaus Jensen, 2021/02/09
- [PULL 34/56] hw/block/nvme: fix zone write finalize, Klaus Jensen, 2021/02/09
- [PULL 31/56] hw/block/nvme: remove unused argument in nvme_ns_init_blk, Klaus Jensen, 2021/02/09
- [PULL 32/56] hw/block/nvme: split setup and register for namespace, Klaus Jensen, 2021/02/09
- [PULL 43/56] hw/block/nvme: rename PMR/CMB shift/mask fields, Klaus Jensen, 2021/02/09
- [PULL 47/56] hw/block/nvme: move cmb logic to v1.4, Klaus Jensen, 2021/02/09
- [PULL 42/56] hw/block/nvme: allow cmb and pmr to coexist, Klaus Jensen, 2021/02/09
- [PULL 41/56] hw/block/nvme: move msix table and pba to BAR 0, Klaus Jensen, 2021/02/09
- [PULL 36/56] hw/block/nvme: add smart_critical_warning property, Klaus Jensen, 2021/02/09
- [PULL 50/56] hw/block/nvme: error if drive less than a zone size, Klaus Jensen, 2021/02/09
- [PULL 51/56] hw/block/nvme: fix set feature for error recovery, Klaus Jensen, 2021/02/09
- [PULL 40/56] hw/block/nvme: indicate CMB support through controller capabilities register, Klaus Jensen, 2021/02/09