lkml.org 
[lkml]   [2022]   [Dec]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    SubjectRe: [PATCH] [v2] ata: ahci: fix enum constants for gcc-13
    From
    On 12/3/22 19:54, Arnd Bergmann wrote:
    > From: Arnd Bergmann <arnd@arndb.de>
    >
    > gcc-13 slightly changes the type of constant expressions that are defined
    > in an enum, which triggers a compile time sanity check in libata:
    >
    > linux/drivers/ata/libahci.c: In function 'ahci_led_store':
    > linux/include/linux/compiler_types.h:357:45: error: call to '__compiletime_assert_302' declared with attribute error: BUILD_BUG_ON failed: sizeof(_s) > sizeof(long)
    > 357 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
    >
    > The new behavior is that sizeof() returns the same value for the
    > constant as it does for the enum type, which is generally more sensible
    > and consistent.
    >
    > The problem in libata is that it contains a single enum definition for
    > lots of unrelated constants, some of which are large positive (unsigned)
    > integers like 0xffffffff, while others like (1<<31) are interpreted as
    > negative integers, and this forces the enum type to become 64 bit wide
    > even though most constants would still fit into a signed 32-bit 'int'.
    >
    > Fix this by changing the entire enum definition to use BIT(x) in place
    > of (1<<x), which results in all values being seen as 'unsigned' and
    > fitting into an unsigned 32-bit type.
    >
    > Link: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107917
    > Link: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107405
    > Reported-by: Luis Machado <luis.machado@arm.com>
    > Cc: linux-ide@vger.kernel.org
    > Cc: Damien Le Moal <damien.lemoal@opensource.wdc.com>
    > Cc: stable@vger.kernel.org
    > Cc: Randy Dunlap <rdunlap@infradead.org>
    > Signed-off-by: Arnd Bergmann <arnd@arndb.de>

    Applied to for-6.2. Thanks !

    --
    Damien Le Moal
    Western Digital Research

    \
     
     \ /
      Last update: 2022-12-06 07:47    [W:5.882 / U:0.028 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site