2020-02-05 23:20:10

by Stefan Agner

[permalink] [raw]
Subject: [PATCH] arm: make kexec depend on MMU

From: Michal Hocko <[email protected]>

arm nommu config with KEXEC enabled doesn't compile
arch/arm/kernel/setup.c: In function 'reserve_crashkernel':
arch/arm/kernel/setup.c:1005:25: error: 'SECTION_SIZE' undeclared (first
use in this function)
crash_size, SECTION_SIZE);

since 61603016e212 ("ARM: kexec: fix crashkernel= handling") which is
over one year without anybody noticing. I have only noticed beause of
my testing nommu config which somehow gained CONFIG_KEXEC without
an intention. This suggests that nobody is actually using KEXEC
on nommu ARM configs. It is even a question whether kexec works with
nommu.

Make KEXEC depend on MMU to make this clear. If somebody wants to enable
there will be probably more things to take care.

Signed-off-by: Michal Hocko <[email protected]>
Reviewed-by: Stefan Agner <[email protected]>
Signed-off-by: Stefan Agner <[email protected]>
---
arch/arm/Kconfig | 1 +
1 file changed, 1 insertion(+)

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 96dab76da3b3..59ce8943151f 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -1906,6 +1906,7 @@ config KEXEC
bool "Kexec system call (EXPERIMENTAL)"
depends on (!SMP || PM_SLEEP_SMP)
depends on !CPU_V7M
+ depends on MMU
select KEXEC_CORE
help
kexec is a system call that implements the ability to shutdown your
--
2.25.0


2020-02-05 23:55:28

by Russell King (Oracle)

[permalink] [raw]
Subject: Re: [PATCH] arm: make kexec depend on MMU

Does patch 8951/1, which has been merged into mainline, not fix this?

On Wed, Feb 05, 2020 at 11:43:44PM +0100, Stefan Agner wrote:
> From: Michal Hocko <[email protected]>
>
> arm nommu config with KEXEC enabled doesn't compile
> arch/arm/kernel/setup.c: In function 'reserve_crashkernel':
> arch/arm/kernel/setup.c:1005:25: error: 'SECTION_SIZE' undeclared (first
> use in this function)
> crash_size, SECTION_SIZE);
>
> since 61603016e212 ("ARM: kexec: fix crashkernel= handling") which is
> over one year without anybody noticing. I have only noticed beause of
> my testing nommu config which somehow gained CONFIG_KEXEC without
> an intention. This suggests that nobody is actually using KEXEC
> on nommu ARM configs. It is even a question whether kexec works with
> nommu.
>
> Make KEXEC depend on MMU to make this clear. If somebody wants to enable
> there will be probably more things to take care.
>
> Signed-off-by: Michal Hocko <[email protected]>
> Reviewed-by: Stefan Agner <[email protected]>
> Signed-off-by: Stefan Agner <[email protected]>
> ---
> arch/arm/Kconfig | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index 96dab76da3b3..59ce8943151f 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -1906,6 +1906,7 @@ config KEXEC
> bool "Kexec system call (EXPERIMENTAL)"
> depends on (!SMP || PM_SLEEP_SMP)
> depends on !CPU_V7M
> + depends on MMU
> select KEXEC_CORE
> help
> kexec is a system call that implements the ability to shutdown your
> --
> 2.25.0
>
>

--
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line in suburbia: sync at 12.1Mbps down 622kbps up
According to speedtest.net: 11.9Mbps down 500kbps up

2020-02-06 00:30:06

by Stefan Agner

[permalink] [raw]
Subject: Re: [PATCH] arm: make kexec depend on MMU

On 2020-02-06 00:53, Russell King - ARM Linux admin wrote:
> Does patch 8951/1, which has been merged into mainline, not fix this?

Yes, that should take care of it.

I discussed end of last year with Michal about this, and back then that
patch wasn't around. Should have checked master before re-sending this
patch. Sorry for the noise.

--
Stefan


> On Wed, Feb 05, 2020 at 11:43:44PM +0100, Stefan Agner wrote:
>> From: Michal Hocko <[email protected]>
>>
>> arm nommu config with KEXEC enabled doesn't compile
>> arch/arm/kernel/setup.c: In function 'reserve_crashkernel':
>> arch/arm/kernel/setup.c:1005:25: error: 'SECTION_SIZE' undeclared (first
>> use in this function)
>> crash_size, SECTION_SIZE);
>>
>> since 61603016e212 ("ARM: kexec: fix crashkernel= handling") which is
>> over one year without anybody noticing. I have only noticed beause of
>> my testing nommu config which somehow gained CONFIG_KEXEC without
>> an intention. This suggests that nobody is actually using KEXEC
>> on nommu ARM configs. It is even a question whether kexec works with
>> nommu.
>>
>> Make KEXEC depend on MMU to make this clear. If somebody wants to enable
>> there will be probably more things to take care.
>>
>> Signed-off-by: Michal Hocko <[email protected]>
>> Reviewed-by: Stefan Agner <[email protected]>
>> Signed-off-by: Stefan Agner <[email protected]>
>> ---
>> arch/arm/Kconfig | 1 +
>> 1 file changed, 1 insertion(+)
>>
>> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
>> index 96dab76da3b3..59ce8943151f 100644
>> --- a/arch/arm/Kconfig
>> +++ b/arch/arm/Kconfig
>> @@ -1906,6 +1906,7 @@ config KEXEC
>> bool "Kexec system call (EXPERIMENTAL)"
>> depends on (!SMP || PM_SLEEP_SMP)
>> depends on !CPU_V7M
>> + depends on MMU
>> select KEXEC_CORE
>> help
>> kexec is a system call that implements the ability to shutdown your
>> --
>> 2.25.0
>>
>>

2020-02-06 10:46:32

by Vladimir Murzin

[permalink] [raw]
Subject: Re: [PATCH] arm: make kexec depend on MMU

On 2/5/20 10:43 PM, Stefan Agner wrote:
> From: Michal Hocko <[email protected]>
>
> arm nommu config with KEXEC enabled doesn't compile
> arch/arm/kernel/setup.c: In function 'reserve_crashkernel':
> arch/arm/kernel/setup.c:1005:25: error: 'SECTION_SIZE' undeclared (first
> use in this function)
> crash_size, SECTION_SIZE);
>
> since 61603016e212 ("ARM: kexec: fix crashkernel= handling") which is
> over one year without anybody noticing. I have only noticed beause of
> my testing nommu config which somehow gained CONFIG_KEXEC without
> an intention. This suggests that nobody is actually using KEXEC
> on nommu ARM configs. It is even a question whether kexec works with
> nommu.
>
> Make KEXEC depend on MMU to make this clear. If somebody wants to enable
> there will be probably more things to take care.
>
> Signed-off-by: Michal Hocko <[email protected]>
> Reviewed-by: Stefan Agner <[email protected]>
> Signed-off-by: Stefan Agner <[email protected]>
> ---
> arch/arm/Kconfig | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index 96dab76da3b3..59ce8943151f 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -1906,6 +1906,7 @@ config KEXEC
> bool "Kexec system call (EXPERIMENTAL)"
> depends on (!SMP || PM_SLEEP_SMP)
> depends on !CPU_V7M
> + depends on MMU
> select KEXEC_CORE
> help
> kexec is a system call that implements the ability to shutdown your
>

Vincenzo sent similar patch [1] some time ago. I prefer his patch since CPU_V7M already imply !MMU.

[1] https://lore.kernel.org/linux-arm-kernel/[email protected]/T/

Cheers
Vladimir