Commit 475f9aa6 authored by Vitaly Mayatskikh's avatar Vitaly Mayatskikh Committed by Linus Torvalds

kexec: fix OOPS in crash_kernel_shrink

Two "echo 0 > /sys/kernel/kexec_crash_size" OOPSes kernel.  Also content
of this file is invalid after first shrink to zero: it shows 1 instead of
0.

This scenario is unlikely to happen often (root privs, valid crashkernel=
in cmdline, dump-capture kernel not loaded), I hit it only by chance.

This patch fixes it.
Signed-off-by: default avatarVitaly Mayatskikh <v.mayatskih@gmail.com>
Cc: Cong Wang <amwang@redhat.com>
Cc: Neil Horman <nhorman@tuxdriver.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent d586ebbb
...@@ -1134,11 +1134,9 @@ int crash_shrink_memory(unsigned long new_size) ...@@ -1134,11 +1134,9 @@ int crash_shrink_memory(unsigned long new_size)
free_reserved_phys_range(end, crashk_res.end); free_reserved_phys_range(end, crashk_res.end);
if (start == end) { if (start == end)
crashk_res.end = end;
release_resource(&crashk_res); release_resource(&crashk_res);
} else crashk_res.end = end - 1;
crashk_res.end = end - 1;
unlock: unlock:
mutex_unlock(&kexec_mutex); mutex_unlock(&kexec_mutex);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment