[PATCH] ARM: mmu: fix access to illegal address when using earlycon & memblock=debug

Victor Hassan victor at allwinnertech.com
Mon Apr 18 08:08:09 PDT 2022


On 18/04/2022 07:21, Linus Walleij wrote:
> On Wed, Mar 16, 2022 at 3:33 AM Victor Hassan <victor at allwinnertech.com> wrote:
> 
>> earlycon uses fixmap to create a memory map,
>> So we need to close earlycon before closing fixmap,
>> otherwise printk will access illegal addresses.
>> After creating a new memory map, we open earlycon again.
>>
>> Signed-off-by: Victor Hassan <victor at allwinnertech.com>
> 
> I think noone really noticed this because everyone on Arm systems
> use CONFIG_DEBUG_LL, and that makes printascii hammer out
> stuff on the console very early, it even accounts for whether we have
> MMU on or not.
> 
Hi Linus,
Thank you for the reply. I used earlycon, in early_fixmap_shutdown, the 
base address of earlycon is in the critical stage of release and 
reassignment, so early_fixmap_shutdown -> create_mapping should not call 
earlycon in this process, and create_mapping has a lot of conditions 
that trigger print, memblock=debug just makes it easier to expose problems.

> How are you using this on Arm even? What system and what serial
> driver?
I'm using serial driver 8250 on arm32, with cmdline: memblock=debug.
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8520_CONSOLE=y
> 
> That said, it looks correct.
> Acked-by: Linus Walleij <linus.walleij at linaro.org>
Thank you.
> 
> Yours,
> Linus Walleij

Sincerely,
Victor Hassan



More information about the linux-arm-kernel mailing list