From: Shreenidhi Shedi <sshedi@xxxxxxxxxx> Shifting signed 32-bit value by 31 bits is implementation-defined behaviour. Using unsigned is better option for this. Fixes: 4cca6ea04d31 ("x86/apic: Allow x2apic without IR on VMware platform") Cc: stable@xxxxxxxxxxxxxxx Signed-off-by: Shreenidhi Shedi <sshedi@xxxxxxxxxx> --- arch/x86/kernel/cpu/vmware.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/arch/x86/kernel/cpu/vmware.c b/arch/x86/kernel/cpu/vmware.c index c04b933f48d3..25a4366dc5e3 100644 --- a/arch/x86/kernel/cpu/vmware.c +++ b/arch/x86/kernel/cpu/vmware.c @@ -28,6 +28,7 @@ #include <linux/cpu.h> #include <linux/reboot.h> #include <linux/static_call.h> +#include <linux/bits.h> #include <asm/div64.h> #include <asm/x86_init.h> #include <asm/hypervisor.h> @@ -476,8 +477,8 @@ static bool __init vmware_legacy_x2apic_available(void) { uint32_t eax, ebx, ecx, edx; VMWARE_CMD(GETVCPU_INFO, eax, ebx, ecx, edx); - return (eax & (1 << VMWARE_CMD_VCPU_RESERVED)) == 0 && - (eax & (1 << VMWARE_CMD_LEGACY_X2APIC)) != 0; + return !(eax & BIT(VMWARE_CMD_VCPU_RESERVED)) && + (eax & BIT(VMWARE_CMD_LEGACY_X2APIC)); } #ifdef CONFIG_AMD_MEM_ENCRYPT -- 2.36.1