Re: [PATCH v2] x86/vmware: use unsigned integer for shifting
From: Srivatsa S. Bhat <hidden>
Date: 2022-05-20 15:41:35
Also in:
lkml
On 5/20/22 7:09 AM, Shreenidhi Shedi wrote:
quoted hunk
From: Shreenidhi Shedi <redacted> From: Shreenidhi Shedi <redacted> 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") Signed-off-by: Shreenidhi Shedi <redacted> --- 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..cd809c5b17f0 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))
This patch has clearly not been tested, and not even compiled! (It is missing a semicolon at the end of the return statement). Please take your time to revise and test your patch based on the review feedback; there is no hurry! :) (Also, while at it, the double From: at the beginning of the patch needs to be fixed too). Regards, Srivatsa _______________________________________________ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization