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

Victor Hassan victor at allwinnertech.com
Fri Jun 17 06:30:57 PDT 2022


On 4/18/2022 11:08 PM, Victor Hassan wrote:
> 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>

Hi Linus,
Sorry to disturb. Is there any question about this issue? Thank you :)



More information about the linux-arm-kernel mailing list