dect
/
linux-2.6
Archived
13
0
Fork 0

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: 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>
This commit is contained in:
Vitaly Mayatskikh 2010-05-11 14:06:51 -07:00 committed by Linus Torvalds
parent d586ebbb88
commit 475f9aa6aa
1 changed files with 2 additions and 4 deletions

View File

@ -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);