Re: [PATCH] powerpc: Fix loading of kernel + initramfs with kexec_file_load()

From: Thiago Jung Bauermann
Date: Mon May 27 2019 - 16:18:07 EST

Michael Ellerman <patch-notifications@xxxxxxxxxxxxxx> writes:

> On Wed, 2019-05-22 at 22:01:58 UTC, Thiago Jung Bauermann wrote:
>> Commit b6664ba42f14 ("s390, kexec_file: drop arch_kexec_mem_walk()")
>> changed kexec_add_buffer() to skip searching for a memory location if
>> kexec_buf.mem is already set, and use the address that is there.
>> In powerpc code we reuse a kexec_buf variable for loading both the kernel
>> and the initramfs by resetting some of the fields between those uses, but
>> not mem. This causes kexec_add_buffer() to try to load the kernel at the
>> same address where initramfs will be loaded, which is naturally rejected:
>> # kexec -s -l --initrd initramfs vmlinuz
>> kexec_file_load failed: Invalid argument
>> Setting the mem field before every call to kexec_add_buffer() fixes this
>> regression.
>> Fixes: b6664ba42f14 ("s390, kexec_file: drop arch_kexec_mem_walk()")
>> Signed-off-by: Thiago Jung Bauermann <bauerman@xxxxxxxxxxxxx>
>> Reviewed-by: Dave Young <dyoung@xxxxxxxxxx>
> Applied to powerpc fixes, thanks.


Thiago Jung Bauermann
IBM Linux Technology Center