]> www.infradead.org Git - users/dwmw2/qemu.git/commitdiff
hw/nvme: force nvme-ns param 'shared' to false if no nvme-subsys node
authorNiklas Cassel <niklas.cassel@wdc.com>
Tue, 28 Jun 2022 12:22:09 +0000 (14:22 +0200)
committerKlaus Jensen <k.jensen@samsung.com>
Fri, 15 Jul 2022 08:40:33 +0000 (10:40 +0200)
Since commit 916b0f0b5264 ("hw/nvme: change nvme-ns 'shared' default")
the default value of nvme-ns param 'shared' is set to true, regardless
if there is a nvme-subsys node or not.

On a system without a nvme-subsys node, a namespace will never be able
to be attached to more than one controller, so for this configuration,
it is counterintuitive for this parameter to be set by default.

Force the nvme-ns param 'shared' to false for configurations where
there is no nvme-subsys node, as the namespace will never be able to
attach to more than one controller anyway.

Signed-off-by: Niklas Cassel <niklas.cassel@wdc.com>
Reviewed-by: Klaus Jensen <k.jensen@samsung.com>
Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
hw/nvme/ns.c

index 870c3ca1a2f0b9a7245a56323f9019e3ca321aa5..62a1f97be0101e019d75028a787e77ce0bdab0ce 100644 (file)
@@ -546,6 +546,8 @@ static void nvme_ns_realize(DeviceState *dev, Error **errp)
     int i;
 
     if (!n->subsys) {
+        /* If no subsys, the ns cannot be attached to more than one ctrl. */
+        ns->params.shared = false;
         if (ns->params.detached) {
             error_setg(errp, "detached requires that the nvme device is "
                        "linked to an nvme-subsys device");