2017-12-02 03:34:39

by Dave Young

[permalink] [raw]
Subject: [PATCH] fix system_state checking in early_ioremap

Since below commit earlyprintk=efi,keep does not work any more with a warning
in mm/early_ioremap.c: WARN_ON(system_state >= SYSTEM_RUNNING):
commit 69a78ff226fe ("init: Introduce SYSTEM_SCHEDULING state")

Reason is the the original assumption is SYSTEM_BOOTING equal to
system_state < SYSTEM_RUNNING. But with commit 69a78ff226fe it is not true
any more. Change the WARN_ON to check system_state >= SYSTEM_RUNNING instead.

Signed-off-by: Dave Young <[email protected]>
---
mm/early_ioremap.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

--- linux-x86.orig/mm/early_ioremap.c
+++ linux-x86/mm/early_ioremap.c
@@ -111,7 +111,7 @@ __early_ioremap(resource_size_t phys_add
enum fixed_addresses idx;
int i, slot;

- WARN_ON(system_state != SYSTEM_BOOTING);
+ WARN_ON(system_state >= SYSTEM_RUNNING);

slot = -1;
for (i = 0; i < FIX_BTMAPS_SLOTS; i++) {


2017-12-03 00:56:05

by Dave Young

[permalink] [raw]
Subject: Re: [PATCH] fix system_state checking in early_ioremap

On 12/02/17 at 11:34am, Dave Young wrote:
> Since below commit earlyprintk=efi,keep does not work any more with a warning
> in mm/early_ioremap.c: WARN_ON(system_state >= SYSTEM_RUNNING):

Should be WARN_ON(system_state != SYSTEM_BOOTING) in original code, copy
paste wrongly, if need a resend please let me know :)

> commit 69a78ff226fe ("init: Introduce SYSTEM_SCHEDULING state")
>
> Reason is the the original assumption is SYSTEM_BOOTING equal to
> system_state < SYSTEM_RUNNING. But with commit 69a78ff226fe it is not true
> any more. Change the WARN_ON to check system_state >= SYSTEM_RUNNING instead.
>
> Signed-off-by: Dave Young <[email protected]>
> ---
> mm/early_ioremap.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> --- linux-x86.orig/mm/early_ioremap.c
> +++ linux-x86/mm/early_ioremap.c
> @@ -111,7 +111,7 @@ __early_ioremap(resource_size_t phys_add
> enum fixed_addresses idx;
> int i, slot;
>
> - WARN_ON(system_state != SYSTEM_BOOTING);
> + WARN_ON(system_state >= SYSTEM_RUNNING);
>
> slot = -1;
> for (i = 0; i < FIX_BTMAPS_SLOTS; i++) {