[PATCH v2 3/8] Validate remote store NVRAM

Rohit Kumar rohit.kumar3 at nutanix.com
Fri Apr 8 17:48:46 UTC 2022


Remote store NVRAM feature is being enabled only
if it supports 'blockdev' capability.

Signed-off-by: Prerna Saxena <prerna.saxena at nutanix.com>
Signed-off-by: Florian Schmidt <flosch at nutanix.com>
Signed-off-by: Rohit Kumar <rohit.kumar3 at nutanix.com>
---
 src/qemu/qemu_validate.c | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c
index 96f5427678..2a961b1f50 100644
--- a/src/qemu/qemu_validate.c
+++ b/src/qemu/qemu_validate.c
@@ -611,6 +611,25 @@ qemuValidateDomainDefBoot(const virDomainDef *def)
 }
 
 
+static int
+qemuValidateDomainDefNvram(const virDomainDef *def,
+                           virQEMUCaps *qemuCaps)
+{
+    if (def->os.loader && def->os.loader->nvram) {
+        if (def->os.loader->nvram->type !=  VIR_STORAGE_TYPE_FILE &&
+            !virQEMUCapsGet(qemuCaps, QEMU_CAPS_BLOCKDEV)) {
+            virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+                           _("This Qemu does not support 'blockdev' capability "
+                             "for remote store NVRAM. NVRAM type other than "
+                             "'file' is not supported with this QEMU"));
+            return -1;
+        }
+    }
+
+    return 0;
+}
+
+
 /**
  * qemuValidateDefGetVcpuHotplugGranularity:
  * @def: domain definition
@@ -1185,6 +1204,9 @@ qemuValidateDomainDef(const virDomainDef *def,
     if (qemuValidateDomainDefBoot(def) < 0)
         return -1;
 
+    if (qemuValidateDomainDefNvram(def, qemuCaps) < 0)
+        return -1;
+
     if (qemuValidateDomainVCpuTopology(def, qemuCaps) < 0)
         return -1;
 
-- 
2.25.1



More information about the libvir-list mailing list