The physical addresses in struct hvm_start_info are pointing to the memory where the data is being built instead of the location where it will finally be moved to.
Fix that. Fixes: b7994b6409a4 ("mini-os: kexec: build parameters for new kernel") Signed-off-by: Juergen Gross <jgr...@suse.com> --- arch/x86/kexec.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/x86/kexec.c b/arch/x86/kexec.c index fc58473e..d84df42c 100644 --- a/arch/x86/kexec.c +++ b/arch/x86/kexec.c @@ -233,9 +233,9 @@ int kexec_get_entry(const char *cmdline) memset(info, 0, sizeof(*info)); info->magic = XEN_HVM_START_MAGIC_VALUE; info->version = 1; - info->cmdline_paddr = kexec_param_mem + sizeof(*info) + + info->cmdline_paddr = kexec_param_loc + sizeof(*info) + e820_entries * sizeof(struct hvm_memmap_table_entry); - info->memmap_paddr = kexec_param_mem + sizeof(*info); + info->memmap_paddr = kexec_param_loc + sizeof(*info); info->memmap_entries = e820_entries; mmap = (struct hvm_memmap_table_entry *)(info + 1); -- 2.43.0