[PATCH] pinctrl: airoha: Use unsigned long for bit search

AngeloGioacchino Del Regno angelogioacchino.delregno at collabora.com
Sun Nov 17 22:52:38 PST 2024


Il 17/11/24 12:45, Kees Cook ha scritto:
> Instead of risking alignment problems and causing (false positive) array
> bound warnings when casting a u32 to (64-bit) unsigned long, just use a
> native unsigned long for doing bit searches. Avoids warning with GCC 15's
> -Warray-bounds -fdiagnostics-details:
> 
> In file included from ../include/linux/bitmap.h:11,
>                   from ../include/linux/cpumask.h:12,
>                   from ../arch/x86/include/asm/paravirt.h:21,
>                   from ../arch/x86/include/asm/irqflags.h:80,
>                   from ../include/linux/irqflags.h:18,
>                   from ../include/linux/spinlock.h:59,
>                   from ../include/linux/irq.h:14,
>                   from ../include/linux/irqchip/chained_irq.h:10,
>                   from ../include/linux/gpio/driver.h:8,
>                   from ../drivers/pinctrl/mediatek/pinctrl-airoha.c:11:
> In function 'find_next_bit',
>      inlined from 'airoha_irq_handler' at ../drivers/pinctrl/mediatek/pinctrl-airoha.c:2394:3:
> ../include/linux/find.h:65:23: error: array subscript 'long unsigned int[0]' is partly outside array bounds of 'u32[1]' {aka 'unsigned int[1]'} [-Werror=array-bounds=]
>     65 |                 val = *addr & GENMASK(size - 1, offset);
>        |                       ^~~~~
> ../drivers/pinctrl/mediatek/pinctrl-airoha.c: In function 'airoha_irq_handler':
> ../drivers/pinctrl/mediatek/pinctrl-airoha.c:2387:21: note: object 'status' of size 4
>   2387 |                 u32 status;
>        |                     ^~~~~~
> 
> Signed-off-by: Kees Cook <kees at kernel.org>

Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno at collabora.com>





More information about the Linux-mediatek mailing list