Messages in this thread | | | From | "Srivatsa S. Bhat" <> | Subject | Re: [PATCH] x86/vmware: use unsigned integer for shifting | Date | Fri, 20 May 2022 13:29:34 +0200 |
| |
Hi Shreenidhi,
Thank you for the patch!
On 5/20/22 2:26 AM, Borislav Petkov wrote: > On Fri, May 20, 2022 at 12:58:57PM +0530, Shreenidhi Shedi wrote: >> Shifting signed 32-bit value by 31 bits is implementation-defined >> behaviour. Using unsigned is better option for this. >>
Can you also add a "Fixes:" tag with the commit that introduced the issue? I believe it is 4cca6ea04d31 ("x86/apic: Allow x2apic without IR on VMware platform").
>> Signed-off-by: Shreenidhi Shedi <sshedi@vmware.com> >> --- >> arch/x86/kernel/cpu/vmware.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/arch/x86/kernel/cpu/vmware.c b/arch/x86/kernel/cpu/vmware.c >> index c04b933f48d3..b28f789d3c56 100644 >> --- a/arch/x86/kernel/cpu/vmware.c >> +++ b/arch/x86/kernel/cpu/vmware.c >> @@ -476,7 +476,7 @@ 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 && >> + return (eax & (1U << VMWARE_CMD_VCPU_RESERVED)) == 0 && >> (eax & (1 << VMWARE_CMD_LEGACY_X2APIC)) != 0; > > Or you can use the BIT() macro and simplify this expression even more: > > return !(eax & BIT(VMWARE_CMD_VCPU_RESERVED)) && > (eax & BIT(VMWARE_CMD_LEGACY_X2APIC)); > >
That's better indeed.
Regards, Srivatsa
| |