On 13.09.2017 15:13, Radim Krčmář wrote: > Clang resolves __builtin_constant_p() to false even if the expression is > constant in the end. The only purpose of that expression was to > differentiate a case where the following expression couldn't be checked > at compile-time, so we can just remove the check. > > Clang handles the following two correctly. Turn it into BUG_ON if there > are any more problems with this. > > Fixes: d6321d493319 ("KVM: x86: generalize guest_cpuid_has_ helpers") > Reported-by: Dmitry Vyukov <dvyukov@xxxxxxxxxx> > Signed-off-by: Radim Krčmář <rkrcmar@xxxxxxxxxx> > --- > arch/x86/kvm/cpuid.h | 1 - > 1 file changed, 1 deletion(-) > > diff --git a/arch/x86/kvm/cpuid.h b/arch/x86/kvm/cpuid.h > index 1ea3c0e1e3a9..0bc5c1315708 100644 > --- a/arch/x86/kvm/cpuid.h > +++ b/arch/x86/kvm/cpuid.h > @@ -59,7 +59,6 @@ static __always_inline struct cpuid_reg x86_feature_cpuid(unsigned x86_feature) > { > unsigned x86_leaf = x86_feature / 32; > > - BUILD_BUG_ON(!__builtin_constant_p(x86_leaf)); > BUILD_BUG_ON(x86_leaf >= ARRAY_SIZE(reverse_cpuid)); > BUILD_BUG_ON(reverse_cpuid[x86_leaf].function == 0); > > Reviewed-by: David Hildenbrand <david@xxxxxxxxxx> -- Thanks, David