Re: [PATCH 2/2] x86/kexec_file: add reserved e820 ranges to 2nd kernel e820 table

From: Dave Young
Date: Mon Sep 17 2018 - 23:20:36 EST


On 09/18/18 at 10:48am, Lianbo Jiang wrote:
> e820 reserved ranges is useful in kdump kernel, we have added this in
> kexec-tools code.
>
> One reason is PCI mmconf (extended mode) requires reserved region
> otherwise it falls back to legacy mode.
>
> When AMD SME kdump support, it needs to map dmi table area as unencrypted.
> For normal boot these ranges sit in e820 reserved ranges thus the early
> ioremap code naturally map them as unencrypted. So if we have same e820
> reserve setup in kdump kernel then it will just work like normal kernel.
>
> Signed-off-by: Dave Young <dyoung@xxxxxxxxxx>
> Signed-off-by: Lianbo Jiang <lijiang@xxxxxxxxxx>
> ---
> arch/x86/kernel/crash.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/arch/x86/kernel/crash.c b/arch/x86/kernel/crash.c
> index 3c113e6545a3..db453e9c117b 100644
> --- a/arch/x86/kernel/crash.c
> +++ b/arch/x86/kernel/crash.c
> @@ -384,6 +384,12 @@ int crash_setup_memmap_entries(struct kimage *image, struct boot_params *params)
> walk_iomem_res_desc(IORES_DESC_ACPI_NV_STORAGE, flags, 0, -1, &cmd,
> memmap_entry_callback);
>
> + /* Add all reserved ranges */
> + cmd.type = E820_TYPE_RESERVED;
> + flags = IORESOURCE_MEM;

Lianbo, rethink about this, we will miss other io resource types if only
match IORESOURCE_MEM here, can you redo the patch with just using "0"
for the passing flags?

> + walk_iomem_res_desc(IORES_DESC_NONE, flags, 0, -1, &cmd,
> + memmap_entry_callback);
> +
> /* Add crashk_low_res region */
> if (crashk_low_res.end) {
> ei.addr = crashk_low_res.start;
> --
> 2.17.1
>