• Michał Kępień's avatar
    platform/x86: fujitsu-laptop: Revert UNSUPPORTED_CMD back to an int · 502ab004
    Michał Kępień authored
    UNSUPPORTED_CMD was previously 0x80000000 (int), but commit 819cddae
    ("platform/x86: fujitsu-laptop: Clean up constants") changed it into an
    unsigned long due to BIT() being used to define it.  As call_fext_func()
    returns an int, 0x80000000 would get type promoted when compared to an
    unsigned long, which on a 64-bit system would cause it to become
    0xffffffff80000000 due to sign extension.  This causes one logical
    condition in fujitsu-laptop to always be true and another one to always
    be false on 64-bit systems.  Fix this by reverting UNSUPPORTED_CMD back
    to an int.
    
    This patch fixes the following smatch warnings:
    
    drivers/platform/x86/fujitsu-laptop.c:763 acpi_fujitsu_laptop_leds_register() warn: always true condition '(call_fext_func(device, ((1 << (12)) | (1 << (0))), 2, (1 << (16)), 0) != (1 << (31))) => (s32min-s32max != 2147483648)'
    drivers/platform/x86/fujitsu-laptop.c:816 acpi_fujitsu_laptop_add() warn: impossible condition '(priv->flags_supported == (1 << (31))) => (0-2147483647,18446744071562067968-u64max == 2147483648)'
    
    Fixes: 819cddae ("platform/x86: fujitsu-laptop: Clean up constants")
    Reported-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: default avatarMichał Kępień <kernel@kempniu.pl>
    Reviewed-by: default avatarJonathan Woithe <jwoithe@just42.net>
    Signed-off-by: default avatarDarren Hart (VMware) <dvhart@infradead.org>
    502ab004
fujitsu-laptop.c 27.7 KB