Re: [PATCH] m68k: Fix invalid RMW_INSNS on CPUs that lack CAS

From: Arnd Bergmann
Date: Sun Jul 25 2021 - 11:23:09 EST


On Sun, Jul 25, 2021 at 3:02 PM Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> wrote:
>
> When enabling CONFIG_RMW_INSNS in e.g. a Coldfire build:
>
> {standard input}:3068: Error: invalid instruction for this architecture; needs 68020 or higher (68020 [68k, 68ec020], 68030 [68ec030], 68040 [68ec040], 68060 [68ec060]) -- statement `casl %d4,%d0,(%a6)' ignored
>
> Fix this by (a) adding a new config symbol to track if support for any
> CPU that lacks the CAS instruction is enabled, and (b) making
> CONFIG_RMW_INSNS depend on the new symbol not being set.
>
> Fixes: 0e152d80507b75c0 ("m68k: reorganize Kconfig options to improve mmu/non-mmu selections")
> Reported-by: kernel test robot <lkp@xxxxxxxxx>
> Reported-by: Arnd Bergmann <arnd@xxxxxxxx>
> Signed-off-by: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>

Acked-by: Arnd Bergmann <arnd@xxxxxxxx>

> @@ -54,6 +56,7 @@ config M68000
> config MCPU32
> bool
> select CPU_HAS_NO_BITFIELDS
> + select CPU_HAS_NO_CAS
> select CPU_HAS_NO_UNALIGNED
> select CPU_NO_EFFICIENT_FFS
> help

As far as I can see, there are no users for CONFIG_MCPU32
after M68360 was removed in linux-4.6, but as long as the
option is there, it makes sense to keep it correct.

Arnd