x86/CPUID: fill all fields in x86_cpuid_policy_fill_native()
authorJan Beulich <jbeulich@suse.com>
Thu, 25 Jun 2020 07:12:21 +0000 (09:12 +0200)
committerJan Beulich <jbeulich@suse.com>
Thu, 25 Jun 2020 07:12:21 +0000 (09:12 +0200)
Coverity validly complains that the new call from
tools/tests/cpu-policy/test-cpu-policy.c:test_cpuid_current() leaves
two fields uninitialized, yet they get then consumed by
x86_cpuid_copy_to_buffer(). (All other present callers of the function
pass a pointer to a static - and hence initialized - buffer.)

Coverity-ID: 1464809
Fixes: c22ced93e167 ("tests/cpu-policy: Confirm that CPUID serialisation is sorted")
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
Release-acked-by: Paul Durrant <paul@xen.org>
xen/lib/x86/cpuid.c

index c111d43b002a1a692c74072af4bff35b3dd961ce..c7a0508148d3057edf792df37e14efeb114cdfa3 100644 (file)
@@ -176,6 +176,10 @@ void x86_cpuid_policy_fill_native(struct cpuid_policy *p)
                           ARRAY_SIZE(p->extd.raw) - 1); ++i )
         cpuid_leaf(0x80000000 + i, &p->extd.raw[i]);
 
+    /* Don't report leaves from possible lower level hypervisor, for now. */
+    p->hv_limit = 0;
+    p->hv2_limit = 0;
+
     x86_cpuid_policy_recalc_synth(p);
 }