diff options
Diffstat (limited to 'kernel/kexec.c')
| -rw-r--r-- | kernel/kexec.c | 8 | 
1 files changed, 8 insertions, 0 deletions
diff --git a/kernel/kexec.c b/kernel/kexec.c index 980936a90ee6..e62ec4dc6620 100644 --- a/kernel/kexec.c +++ b/kernel/kexec.c @@ -144,6 +144,14 @@ static int do_kexec_load(unsigned long entry, unsigned long nr_segments,  	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; +  	for (i = 0; i < nr_segments; i++) {  		ret = kimage_load_segment(image, &image->segment[i]);  		if (ret)  | 
