The patch titled Subject: kdump: crashk_res init check for /sys/kernel/kexec_crash_size has been added to the -mm tree. Its filename is kdump-crashk_res-init-check-for-sys-kernel-kexec_crash_size.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/SubmitChecklist when testing your code *** See http://userweb.kernel.org/~akpm/stuff/added-to-mm.txt to find out what to do about this The current -mm tree may be found at http://userweb.kernel.org/~akpm/mmotm/ ------------------------------------------------------ From: Michael Holzheu <holzheu@xxxxxxxxxxxxxxxxxx> Subject: kdump: crashk_res init check for /sys/kernel/kexec_crash_size Currently it is possible to set the crash_size via the sysfs /sys/kernel/kexec_crash_size even if no crash kernel memory has been defined with the "crashkernel" parameter. In this case "crashk_res" is not initialized and crashk_res.start = crashk_res.end = 0. Unfortunately resource_size(&crashk_res) returns 1 in this case. This breaks the s390 implementation of crash_(un)map_reserved_pages(). To fix the problem the correct "old_size" is now calculated in crash_shrink_memory(). "old_size is set to "0" if crashk_res is not initialized. With this change crash_shrink_memory() will do nothing, when "crashk_res" is not initialized. It will return "0" for "echo 0 > /sys/kernel/kexec_crash_size" and -EINVAL for "echo [not zero] > /sys/kernel/kexec_crash_size". In addition to that this patch also simplifies the "ret = -EINVAL" vs. "ret = 0" logic as suggested by Simon Horman. Signed-off-by: Michael Holzheu <holzheu@xxxxxxxxxxxxxxxxxx> Reviewed-by: Dave Young <dyoung@xxxxxxxxxx> Reviewed-by: WANG Cong <xiyou.wangcong@xxxxxxxxx> Reviewed-by: Simon Horman <horms@xxxxxxxxxxxx> Cc: Vivek Goyal <vgoyal@xxxxxxxxxx> Cc: "Eric W. Biederman" <ebiederm@xxxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- kernel/kexec.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff -puN kernel/kexec.c~kdump-crashk_res-init-check-for-sys-kernel-kexec_crash_size kernel/kexec.c --- a/kernel/kexec.c~kdump-crashk_res-init-check-for-sys-kernel-kexec_crash_size +++ a/kernel/kexec.c @@ -1129,6 +1129,7 @@ int crash_shrink_memory(unsigned long ne { int ret = 0; unsigned long start, end; + unsigned long old_size; struct resource *ram_res; mutex_lock(&kexec_mutex); @@ -1139,11 +1140,9 @@ int crash_shrink_memory(unsigned long ne } start = crashk_res.start; end = crashk_res.end; - - if (new_size >= end - start + 1) { - ret = -EINVAL; - if (new_size == end - start + 1) - ret = 0; + old_size = (end == 0) ? 0 : end - start + 1; + if (new_size >= old_size) { + ret = (new_size == old_size) ? 0 : -EINVAL; goto unlock; } _ Subject: Subject: kdump: crashk_res init check for /sys/kernel/kexec_crash_size Patches currently in -mm which might be from holzheu@xxxxxxxxxxxxxxxxxx are linux-next.patch kdump-add-missing-ram-resource-in-crash_shrink_memory.patch kdump-add-udev-events-for-memory-online-offline.patch kdump-crashk_res-init-check-for-sys-kernel-kexec_crash_size.patch -- To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html