ab145e
From c8ede44db2e94444e5a8ee38e21eda2b42717879 Mon Sep 17 00:00:00 2001
ab145e
Message-Id: <c8ede44db2e94444e5a8ee38e21eda2b42717879@dist-git>
ab145e
From: Pavel Hrdina <phrdina@redhat.com>
ab145e
Date: Tue, 18 May 2021 15:03:02 +0200
ab145e
Subject: [PATCH] qemu_firmware: don't error out for unknown firmware features
ab145e
MIME-Version: 1.0
ab145e
Content-Type: text/plain; charset=UTF-8
ab145e
Content-Transfer-Encoding: 8bit
ab145e
ab145e
When QEMU introduces new firmware features libvirt will fail until we
ab145e
list that feature in our code as well which doesn't sound right.
ab145e
ab145e
We should simply ignore the new feature until we add a proper support
ab145e
for it.
ab145e
ab145e
Reported-by: Laszlo Ersek <lersek@redhat.com>
ab145e
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
ab145e
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
ab145e
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
ab145e
(cherry picked from commit 61d95a1073833ec4323c1ef28e71e913c55aa7b9)
ab145e
ab145e
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1961562
ab145e
ab145e
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
ab145e
Message-Id: <8989d70d49d8a720532a8c25e3e73d9b3bf2a495.1621342722.git.phrdina@redhat.com>
ab145e
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
ab145e
---
ab145e
 src/qemu/qemu_firmware.c | 12 ++++++------
ab145e
 1 file changed, 6 insertions(+), 6 deletions(-)
ab145e
ab145e
diff --git a/src/qemu/qemu_firmware.c b/src/qemu/qemu_firmware.c
ab145e
index c84d03f0a8..8ef515ca57 100644
ab145e
--- a/src/qemu/qemu_firmware.c
ab145e
+++ b/src/qemu/qemu_firmware.c
ab145e
@@ -570,6 +570,7 @@ qemuFirmwareFeatureParse(const char *path,
ab145e
     virJSONValuePtr featuresJSON;
ab145e
     g_autoptr(qemuFirmwareFeature) features = NULL;
ab145e
     size_t nfeatures;
ab145e
+    size_t nparsed = 0;
ab145e
     size_t i;
ab145e
 
ab145e
     if (!(featuresJSON = virJSONValueObjectGetArray(doc, "features"))) {
ab145e
@@ -590,17 +591,16 @@ qemuFirmwareFeatureParse(const char *path,
ab145e
         int tmp;
ab145e
 
ab145e
         if ((tmp = qemuFirmwareFeatureTypeFromString(tmpStr)) <= 0) {
ab145e
-            virReportError(VIR_ERR_INTERNAL_ERROR,
ab145e
-                           _("unknown feature %s"),
ab145e
-                           tmpStr);
ab145e
-            return -1;
ab145e
+            VIR_DEBUG("ignoring unknown QEMU firmware feature '%s'", tmpStr);
ab145e
+            continue;
ab145e
         }
ab145e
 
ab145e
-        features[i] = tmp;
ab145e
+        features[nparsed] = tmp;
ab145e
+        nparsed++;
ab145e
     }
ab145e
 
ab145e
     fw->features = g_steal_pointer(&features);
ab145e
-    fw->nfeatures = nfeatures;
ab145e
+    fw->nfeatures = nparsed;
ab145e
     return 0;
ab145e
 }
ab145e
 
ab145e
-- 
ab145e
2.31.1
ab145e