x86/CPUID: also check leaf 7 max subleaf to be compatible
authorJan Beulich <jbeulich@suse.com>
Tue, 10 Nov 2020 13:40:09 +0000 (14:40 +0100)
committerJan Beulich <jbeulich@suse.com>
Tue, 10 Nov 2020 13:40:09 +0000 (14:40 +0100)
Just like is done for basic and extended major leaves.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
xen/lib/x86/policy.c

index 4beca8767a937709048d01324aaad76e2514002f..f6cea4e2f9bdee1e7206a5dff2d4a2584c5ca815 100644 (file)
@@ -18,6 +18,9 @@ int x86_cpu_policies_are_compatible(const struct cpu_policy *host,
     if ( guest->cpuid->basic.max_leaf > host->cpuid->basic.max_leaf )
         FAIL_CPUID(0, NA);
 
+    if ( guest->cpuid->feat.max_subleaf > host->cpuid->feat.max_subleaf )
+        FAIL_CPUID(7, 0);
+
     if ( guest->cpuid->extd.max_leaf > host->cpuid->extd.max_leaf )
         FAIL_CPUID(0x80000000, NA);