]> xenbits.xensource.com Git - people/pauldu/xen.git/commitdiff
x86/CPUID: don't use UB shift when library is built as 32-bit
authorJan Beulich <jbeulich@suse.com>
Tue, 10 Nov 2020 13:39:03 +0000 (14:39 +0100)
committerJan Beulich <jbeulich@suse.com>
Tue, 10 Nov 2020 13:39:03 +0000 (14:39 +0100)
At least the insn emulator test harness will continue to be buildable
(and ought to continue to be usable) also as a 32-bit binary. (Right now
the CPU policy test harness is, too, but there it may be less relevant
to keep it functional, just like e.g. we don't support fuzzing the insn
emulator in 32-bit mode.) Hence the library code needs to cope with
this.

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

index c7a0508148d3057edf792df37e14efeb114cdfa3..8eb88314f53cf0c766d05fa2cafa0856bdbf8644 100644 (file)
@@ -165,7 +165,7 @@ void x86_cpuid_policy_fill_native(struct cpuid_policy *p)
         for ( i = 2; i < min_t(unsigned int, 63,
                                ARRAY_SIZE(p->xstate.raw)); ++i )
         {
-            if ( xstates & (1ul << i) )
+            if ( xstates & (1ull << i) )
                 cpuid_count_leaf(0xd, i, &p->xstate.raw[i]);
         }
     }