[PATCH 2/3] riscv: Remove non-standard linux,elfcorehdr handling

Nick Kossifidis mick at ics.forth.gr
Tue Jun 15 11:40:43 PDT 2021


Στις 2021-06-15 21:17, Geert Uytterhoeven έγραψε:
> RISC-V uses platform-specific code to locate the elf core header in
> memory.  However, this does not conform to the standard
> "linux,elfcorehdr" DT bindings, as it relies on a reserved memory node
> with the "linux,elfcorehdr" compatible value, instead of on a
> "linux,elfcorehdr" property under the "/chosen" node.
> 
> The non-compliant code can just be removed, as the standard behavior is
> already implemented by platform-agnostic handling in the FDT core code.
> 
> Fixes: 5640975003d0234d ("RISC-V: Add crash kernel support")
> Signed-off-by: Geert Uytterhoeven <geert+renesas at glider.be>

NACK

There is nothing standard about "linux,elfcorehdr", it's an 
arm64-specific property on /chosen and it's suboptimal, it gets the 
addr/length of ELF core of the previous kernel through that property and 
then goes on to reserve that region at:
https://elixir.bootlin.com/linux/v5.13-rc6/source/arch/arm64/mm/init.c#L155

Why on earth is this cleaner than just defining a reserved-region in the 
first place (a standard binding) with and hook up a callback with 
RESERVEDMEM_OF_DECLARE for it to also initialize elfcorehdr_addr/size ? 
If you don't like the compatible string I'm ok to change it, but this 
patch breaks kdump on riscv since that region won't be reserved any more 
and kernel will corrupt it.



More information about the linux-riscv mailing list