https://bugzilla.redhat.com/show_bug.cgi?id=1426162
Turns out, some aarch64 systems have SMBIOS info. That means we
In fact aarch64 are required to support SMBIOS if they want to
be compliant with the Server Base Boot Requirements spec. This
effectively covers any aarch64 machine targetted as data center
servers.
can use dmidecode to fetch some information. If that fails, fall
back to the old behaviour.
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
src/util/virsysinfo.c | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/src/util/virsysinfo.c b/src/util/virsysinfo.c
index b371e8dd26..83da3897ce 100644
--- a/src/util/virsysinfo.c
+++ b/src/util/virsysinfo.c
@@ -192,6 +192,14 @@ void virSysinfoDefFree(virSysinfoDefPtr def)
}
+static bool
+virSysinfoDefEmpty(const virSysinfoDef *def)
+{
+ return !(def->bios || def->system || def->nbaseBoard ||
+ def->chassis || def->nprocessor || def->nmemory ||
def->oemStrings);
+}
+
+
static int
virSysinfoParsePPCSystem(const char *base, virSysinfoSystemDefPtr *sysdef)
{
@@ -433,6 +441,16 @@ virSysinfoReadARM(void)
virSysinfoDefPtr ret = NULL;
char *outbuf = NULL;
+ /* Some ARM systems have DMI tables available. */
+ if ((ret = virSysinfoReadDMI())) {
+ if (!virSysinfoDefEmpty(ret))
+ return ret;
+ virSysinfoDefFree(ret);
+ }
+
+ /* Well, we've tried. Fall back to parsing cpuinfo */
+ virResetLastError();
+
if (VIR_ALLOC(ret) < 0)
goto no_memory;
--
2.21.0
--
libvir-list mailing list
libvir-list(a)redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list