]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
virt-host-validate: Turn failure to read /proc/cmdline into an error
authorMichal Privoznik <mprivozn@redhat.com>
Tue, 8 Jun 2021 07:21:27 +0000 (09:21 +0200)
committerMichal Privoznik <mprivozn@redhat.com>
Wed, 9 Jun 2021 06:23:13 +0000 (08:23 +0200)
When validating secure guests support on s390(x) we may read
/proc/cmdline and look for "prot_virt" argument. Reading the
kernel command line is done via virFileReadValueString() which
may fail. In such case caller won't see any error message. But we
can produce the same warning/error as if "prot_virt" argument
wasn't found.  Not only this lets users know about the problem,
it also terminates the "Checking for ...." line correctly.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Fabiano Fidêncio <fabiano@fidencio.org>
tools/virt-host-validate-common.c

index c0cee43409bf32ebc2a247f885bf4e211546bbcf..4482690b4b945345c46fe59500c9f8484e4328a0 100644 (file)
@@ -470,14 +470,12 @@ int virHostValidateSecureGuests(const char *hvname,
                 return 0;
             }
 
-            if (virFileReadValueString(&cmdline, "/proc/cmdline") < 0)
-                return VIR_HOST_VALIDATE_FAILURE(level);
-
             /* we're prefix matching rather than equality matching here, because
              * kernel would treat even something like prot_virt='yFOO' as
              * enabled
              */
-            if (virKernelCmdlineMatchParam(cmdline, "prot_virt", kIBMValues,
+            if (virFileReadValueString(&cmdline, "/proc/cmdline") >= 0 &&
+                virKernelCmdlineMatchParam(cmdline, "prot_virt", kIBMValues,
                                            G_N_ELEMENTS(kIBMValues),
                                            VIR_KERNEL_CMDLINE_FLAGS_SEARCH_FIRST |
                                            VIR_KERNEL_CMDLINE_FLAGS_CMP_PREFIX)) {