From: Jan Beulich Date: Thu, 30 Apr 2020 08:45:09 +0000 (+0200) Subject: x86/CPUID: correct error indicator for max extended leaf X-Git-Tag: archive/raspbian/4.14.0+80-gd101b417b7-1+rpi1^2~63^2~318 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=0135be8bd8cd60090298f02310691b688d95c3a8;p=xen.git x86/CPUID: correct error indicator for max extended leaf With the max base leaf using 0, this one should be using the extended leaf counterpart thereof, rather than some arbitrary extended leaf. Fixes: 588a966a572e ("libx86: Introduce x86_cpu_policies_are_compatible()") Signed-off-by: Jan Beulich Reviewed-by: Andrew Cooper --- diff --git a/tools/tests/cpu-policy/test-cpu-policy.c b/tools/tests/cpu-policy/test-cpu-policy.c index 20ebed923b..fe8cdf6ea9 100644 --- a/tools/tests/cpu-policy/test-cpu-policy.c +++ b/tools/tests/cpu-policy/test-cpu-policy.c @@ -570,7 +570,7 @@ static void test_is_compatible_failure(void) { .name = "Host extd.max_leaf out of range", .guest_cpuid.extd.max_leaf = 1, - .e = { 0x80000008, -1, -1 }, + .e = { 0x80000000, -1, -1 }, }, { .name = "Host no CPUID faulting, Guest wanted", diff --git a/xen/lib/x86/policy.c b/xen/lib/x86/policy.c index b156a304f4..4beca8767a 100644 --- a/xen/lib/x86/policy.c +++ b/xen/lib/x86/policy.c @@ -19,7 +19,7 @@ int x86_cpu_policies_are_compatible(const struct cpu_policy *host, FAIL_CPUID(0, NA); if ( guest->cpuid->extd.max_leaf > host->cpuid->extd.max_leaf ) - FAIL_CPUID(0x80000008, NA); + FAIL_CPUID(0x80000000, NA); /* TODO: Audit more CPUID data. */