diff mbox series

[4/5] ARM: fix CPU_V6 dependencies

Message ID 20220818145616.3156379-5-arnd@kernel.org
State New
Headers show
Series ARM: clean up after multiplatform changes | expand

Commit Message

Arnd Bergmann Aug. 18, 2022, 2:56 p.m. UTC
From: Arnd Bergmann <arnd@arndb.de>

CONFIG_XIP_KERNEL must not be combined with CONFIG_SMP_ON_UP
because the patching of read-only data does not work.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 arch/arm/mach-imx/Kconfig       | 1 +
 arch/arm/mach-omap2/Kconfig     | 1 +
 arch/arm/mach-versatile/Kconfig | 2 ++
 3 files changed, 4 insertions(+)

Comments

Linus Walleij Aug. 25, 2022, 1:43 p.m. UTC | #1
On Thu, Aug 18, 2022 at 4:56 PM Arnd Bergmann <arnd@kernel.org> wrote:

> From: Arnd Bergmann <arnd@arndb.de>
>
> CONFIG_XIP_KERNEL must not be combined with CONFIG_SMP_ON_UP
> because the patching of read-only data does not work.
>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

The $SUBJECT of this patch is mildly confusing, as the affected
targets are maybe CPU_V6 but the change is related to XIP and
SMP_ON_UP.

Other than that it looks good.

Yours,
Linus Walleij
Arnd Bergmann Aug. 29, 2022, 9:33 a.m. UTC | #2
On Thu, Aug 25, 2022 at 3:43 PM Linus Walleij <linus.walleij@linaro.org> wrote:
>
> On Thu, Aug 18, 2022 at 4:56 PM Arnd Bergmann <arnd@kernel.org> wrote:
>
> > From: Arnd Bergmann <arnd@arndb.de>
> >
> > CONFIG_XIP_KERNEL must not be combined with CONFIG_SMP_ON_UP
> > because the patching of read-only data does not work.
> >
> > Signed-off-by: Arnd Bergmann <arnd@arndb.de>
>
> The $SUBJECT of this patch is mildly confusing, as the affected
> targets are maybe CPU_V6 but the change is related to XIP and
> SMP_ON_UP.
>
> Other than that it looks good.

The patch caused a regression, so I ended up completely replacing it,
new patch follows.

         Arnd
Geert Uytterhoeven Aug. 30, 2022, 7:41 a.m. UTC | #3
Hi Arnd,

On Tue, Aug 30, 2022 at 9:21 AM Arnd Bergmann <arnd@arndb.de> wrote:
> CONFIG_XIP_KERNEL does not work with any option that involves patching
> the read-only kernel .text.
>
> Since at least CONFIG_SMP_ON_UP is required in certain configurations,
> flip the dependency to always allow the .text patching options but make
> XIP_KERNEL have the dependency instead.
>
> This is a prerequisite for allowing CONFIG_ARCH_MULTIPLATFORM to
> be disabled.
>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

Thanks for your patch!

> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -1619,6 +1619,7 @@ endchoice
>  config XIP_KERNEL
>         bool "Kernel Execute-In-Place from ROM"
>         depends on !ARM_LPAE && !ARCH_MULTIPLATFORM
> +       depends on !SMP_ON_UP && !ARM_PATCH_IDIV && !ARM_PATCH_PHYS_VIRT

You may want to keep the list sorted.

>         help
>           Execute-In-Place allows the kernel to run from non-volatile storage
>           directly addressable by the CPU, such as NOR flash. This saves RAM

Regardless, LGTM, so
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds
Arnd Bergmann Aug. 30, 2022, 9:18 a.m. UTC | #4
On Tue, Aug 30, 2022, at 9:41 AM, Geert Uytterhoeven wrote:
>> --- a/arch/arm/Kconfig
>> +++ b/arch/arm/Kconfig
>> @@ -1619,6 +1619,7 @@ endchoice
>>  config XIP_KERNEL
>>         bool "Kernel Execute-In-Place from ROM"
>>         depends on !ARM_LPAE && !ARCH_MULTIPLATFORM
>> +       depends on !SMP_ON_UP && !ARM_PATCH_IDIV && !ARM_PATCH_PHYS_VIRT
>
> You may want to keep the list sorted.

Done

> Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>

Thanks,

       Arnd
Linus Walleij Aug. 31, 2022, 1:35 p.m. UTC | #5
On Tue, Aug 30, 2022 at 9:21 AM Arnd Bergmann <arnd@arndb.de> wrote:

> CONFIG_XIP_KERNEL does not work with any option that involves patching
> the read-only kernel .text.
>
> Since at least CONFIG_SMP_ON_UP is required in certain configurations,
> flip the dependency to always allow the .text patching options but make
> XIP_KERNEL have the dependency instead.
>
> This is a prerequisite for allowing CONFIG_ARCH_MULTIPLATFORM to
> be disabled.
>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

OK this should work!
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>

Yours,
Linus Walleij
diff mbox series

Patch

diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig
index ab767f059929..9308e9894be5 100644
--- a/arch/arm/mach-imx/Kconfig
+++ b/arch/arm/mach-imx/Kconfig
@@ -41,6 +41,7 @@  comment "ARM1136 platforms"
 
 config SOC_IMX31
 	bool "i.MX31 support"
+	depends on !SMP || !XIP_KERNEL # for SMP_ON_UP
 	select CPU_V6
 	select MXC_AVIC
 	help
diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig
index 3b53dda9ec79..f2ce262958c4 100644
--- a/arch/arm/mach-omap2/Kconfig
+++ b/arch/arm/mach-omap2/Kconfig
@@ -8,6 +8,7 @@  config OMAP_HWMOD
 config ARCH_OMAP2
 	bool "TI OMAP2"
 	depends on ARCH_MULTI_V6
+	depends on !SMP || !XIP_KERNEL # for SMP_ON_UP
 	select ARCH_OMAP2PLUS
 	select CPU_V6
 	select OMAP_HWMOD
diff --git a/arch/arm/mach-versatile/Kconfig b/arch/arm/mach-versatile/Kconfig
index 2ef226194c3a..25723b0c63dd 100644
--- a/arch/arm/mach-versatile/Kconfig
+++ b/arch/arm/mach-versatile/Kconfig
@@ -21,6 +21,7 @@  menuconfig ARCH_INTEGRATOR
 	bool "ARM Ltd. Integrator family"
 	depends on ARCH_MULTI_V4T || ARCH_MULTI_V5 || ARCH_MULTI_V6
 	depends on CPU_LITTLE_ENDIAN || ARCH_MULTI_V6
+	depends on !SMP || !XIP_KERNEL # for SMP_ON_UP
 	select ARM_AMBA
 	select CMA
 	select DMA_CMA
@@ -146,6 +147,7 @@  endif
 menuconfig ARCH_REALVIEW
 	bool "ARM Ltd. RealView family"
 	depends on (CPU_LITTLE_ENDIAN && ARCH_MULTI_V5) || ARCH_MULTI_V6 || ARCH_MULTI_V7
+	depends on !SMP || !XIP_KERNEL # for SMP_ON_UP
 	select ARM_AMBA
 	select ARM_GIC
 	select ARM_TIMER_SP804