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 <jbeul...@suse.com> --- 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(v { .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", --- a/xen/lib/x86/policy.c +++ b/xen/lib/x86/policy.c @@ -19,7 +19,7 @@ int x86_cpu_policies_are_compatible(cons 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. */