Re: [PATCH] mtd: maps: fix dead select of MTD_CFI_BE_BYTE_SWAP
From: Julian Braha
Date: Wed Jul 22 2026 - 10:13:39 EST
Hi Arnd,
On 7/22/26 08:42, Arnd Bergmann wrote:
>> 'select' does not work on config options in a 'choice', so currently it is
>> possible to enable MTD_PHYSMAP_IXP4XX without MTD_CFI_BE_BYTE_SWAP.
>>
>> Let's replace the select with 'depends on'.
>>
>> Note that, if we remove the select / dependency, the kernel will compile
>> with MTD_PHYSMAP_IXP4XX=y and MTD_CFI_BE_BYTE_SWAP=n so if it would be
>> better to remove the select, please advise as I do not have the hardware
>> to runtime test this.
>>
>> This dead select was found by kconfirm, a static analysis tool for Kconfig.
> The choice is forced to be MTD_CFI_BE_BYTE_SWAP when building for
> big-endian IXP4XX, which I think means this will currently always
> work correctly:
>
> config MTD_CFI_NOSWAP
> depends on !ARCH_IXP4XX || CPU_BIG_ENDIAN
> bool "NO"
>
> config MTD_CFI_BE_BYTE_SWAP
> bool "BIG_ENDIAN_BYTE"
>
> config MTD_CFI_LE_BYTE_SWAP
> depends on !ARCH_IXP4XX
> bool "LITTLE_ENDIAN_BYTE"
>
> endchoice
Actually it is currently possible to have:
MTD_PHYSMAP_IXP4XX=y
MTD_CFI_BE_BYTE_SWAP=n
CPU_BIG_ENDIAN=y
by not satisfying the dependencies of the choice that
MTD_CFI_BE_BYTE_SWAP is part of,
for example, set:
MTD_CFI_ADV_OPTIONS=n
then, none of the choice options are enabled. This is the
configuration that I had compile-tested (but cannot runtime test).
In any case, should I send a v2 removing the select, and leave the
rest of the little-endian ARCH_IXP4XX changes to you?
- Julian Braha