X-Git-Url: https://git.kernelconcepts.de/?a=blobdiff_plain;f=kernel%2Fkexec_file.c;h=9f48f441229720b0e02434b2375b61d9c62b7706;hb=6cd819e8e978b361ae558056a9e79fd30e6acb0d;hp=766e7e4d3ad91d99a7b3cb90bc6f84511d76c72d;hpb=235b84fc862ae2637dc0dabada18d97f1bfc18e1;p=karo-tx-linux.git diff --git a/kernel/kexec_file.c b/kernel/kexec_file.c index 766e7e4d3ad9..9f48f4412297 100644 --- a/kernel/kexec_file.c +++ b/kernel/kexec_file.c @@ -26,13 +26,6 @@ #include #include "kexec_internal.h" -/* - * Declare these symbols weak so that if architecture provides a purgatory, - * these will be overridden. - */ -char __weak kexec_purgatory[0]; -size_t __weak kexec_purgatory_size = 0; - static int kexec_calculate_store_digests(struct kimage *image); /* Architectures can provide this probe function */ @@ -298,6 +291,14 @@ SYSCALL_DEFINE5(kexec_file_load, int, kernel_fd, int, initrd_fd, if (ret) goto out; + /* + * Some architecture(like S390) may touch the crash memory before + * machine_kexec_prepare(), we must copy vmcoreinfo data after it. + */ + ret = kimage_crash_copy_vmcoreinfo(image); + if (ret) + goto out; + ret = kexec_calculate_store_digests(image); if (ret) goto out;