Now we use "memeory::linux,usable-memory" to indicate the available
memory for the crash kernel.

While booting with UEFI, the crash kernel would use efi.memmap to
re-populate memblock and then first kernel's memory would be corrputed.
Consequently, the /proc/vmcore file failed to create in my local test.

And according to "chosen" dtschema [1], the available memory for the
crash kernel should be held via "chosen::linux,usable-memory-range"
property which will re-cap memblock even after UEFI's re-population.

[1]:
https://github.com/devicetree-org/dt-schema/blob/main/dtschema/schemas/chosen.yaml

Signed-off-by: Song Shuai <songshuaish...@tinylab.org>
---
 kexec/arch/riscv/kexec-riscv.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/kexec/arch/riscv/kexec-riscv.c b/kexec/arch/riscv/kexec-riscv.c
index fe5dd2d..5aea035 100644
--- a/kexec/arch/riscv/kexec-riscv.c
+++ b/kexec/arch/riscv/kexec-riscv.c
@@ -79,20 +79,20 @@ int load_extra_segments(struct kexec_info *info, uint64_t 
kernel_base,
                }
 
                ret = dtb_add_range_property(&fdt->buf, &fdt->size, start, end,
-                                            "memory", "linux,usable-memory");
+                                            "chosen", 
"linux,usable-memory-range");
                if (ret) {
-                       fprintf(stderr, "Couldn't add usable-memory to fdt\n");
+                       fprintf(stderr, "Couldn't add usable-memory-range to 
fdt\n");
                        return ret;
                }
 
                max_usable = end;
        } else {
                /*
-                * Make sure we remove elfcorehdr and usable-memory
+                * Make sure we remove elfcorehdr and usable-memory-range
                 * when switching from crash kernel to a normal one.
                 */
                dtb_delete_property(fdt->buf, "chosen", "linux,elfcorehdr");
-               dtb_delete_property(fdt->buf, "memory", "linux,usable-memory");
+               dtb_delete_property(fdt->buf, "chosen", 
"linux,usable-memory-range");
        }
 
        /* Do we need to include an initrd image ? */
-- 
2.20.1


_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec

Reply via email to