From: Jan Beulich Date: Tue, 10 Nov 2020 13:39:03 +0000 (+0100) Subject: x86/CPUID: don't use UB shift when library is built as 32-bit X-Git-Tag: archive/raspbian/4.16.0+51-g0941d6cb-1+rpi1~2^2~42^2~1419 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=db1a9fdd554cb1d8a7099af7925318fc06c6875b;p=xen.git x86/CPUID: don't use UB shift when library is built as 32-bit 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 Acked-by: Andrew Cooper --- diff --git a/xen/lib/x86/cpuid.c b/xen/lib/x86/cpuid.c index c7a0508148..8eb88314f5 100644 --- a/xen/lib/x86/cpuid.c +++ b/xen/lib/x86/cpuid.c @@ -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]); } }