diff options
author | Thiago Jung Bauermann <bauerman@linux.ibm.com> | 2019-05-22 19:01:58 -0300 |
---|---|---|
committer | Michael Ellerman <mpe@ellerman.id.au> | 2019-05-23 14:00:32 +1000 |
commit | 8b909e3548706cbebc0a676067b81aadda57f47e (patch) | |
tree | 9f3ad256ddf708bad80add6f5275d1695c432bbb /crypto/crypto_engine.c | |
parent | 3202e35ec1c8fc19cea24253ff83edf702a60a02 (diff) | |
download | linux-8b909e3548706cbebc0a676067b81aadda57f47e.tar.bz2 |
powerpc/kexec: Fix loading of kernel + initramfs with kexec_file_load()
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()")
Cc: stable@vger.kernel.org # v5.0+
Signed-off-by: Thiago Jung Bauermann <bauerman@linux.ibm.com>
Reviewed-by: Dave Young <dyoung@redhat.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Diffstat (limited to 'crypto/crypto_engine.c')
0 files changed, 0 insertions, 0 deletions