Skip to content

Commit

Permalink
kexec: fix OOPS in crash_kernel_shrink
Browse files Browse the repository at this point in the history
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: Vitaly Mayatskikh <v.mayatskih@gmail.com>
Cc: Cong Wang <amwang@redhat.com>
Cc: Neil Horman <nhorman@tuxdriver.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  • Loading branch information
Vitaly Mayatskikh authored and Linus Torvalds committed May 12, 2010
1 parent d586ebb commit 475f9aa
Showing 1 changed file with 2 additions and 4 deletions.
6 changes: 2 additions & 4 deletions kernel/kexec.c
Original file line number Diff line number Diff line change
Expand Up @@ -1134,11 +1134,9 @@ int crash_shrink_memory(unsigned long new_size)

free_reserved_phys_range(end, crashk_res.end);

if (start == end) {
crashk_res.end = end;
if (start == end)
release_resource(&crashk_res);
} else
crashk_res.end = end - 1;
crashk_res.end = end - 1;

unlock:
mutex_unlock(&kexec_mutex);
Expand Down

0 comments on commit 475f9aa

Please sign in to comment.