Re: [PATCH 2/3] riscv: Remove non-standard linux,elfcorehdr handling
From: Rob Herring <robh+dt@kernel.org>
Date: 2021-06-15 19:54:46
Also in:
linux-arm-kernel, linux-riscv, lkml
On Tue, Jun 15, 2021 at 12:40 PM Nick Kossifidis [off-list ref] wrote:
Στις 2021-06-15 21:17, Geert Uytterhoeven έγραψε:quoted
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@glider.be>NACK There is nothing standard about "linux,elfcorehdr", it's an
It is and it is documented which is more than we can say for "linux,elfcorehdr" as a node.
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.
I might agree if we were designing this all from scratch, but we're not. We've got powerpc doing /memreserve/ + kernel cmdline, arm64 using chosen, and RiscV a 3rd way. What happens when/if RiscV wants to add an IMA buffer? That's no different than this case. The 2 architectures supporting it both use /chosen. Specifying an initrd is no different either. Rob