projects/linux·commit 475f9aa6

kexec: fix OOPS in crash_kernel_shrink

475f9aa6 · Vitaly Mayatskikh <[email protected]> · 2010-05-11 14:06:51 -07:00

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 <[email protected]>
Cc: Cong Wang <[email protected]>
Cc: Neil Horman <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
Commit
475f9aa6aa538befcbd0fa95bdebada600f247cd
Parents
d586ebbb

Changes

1 files changed · +2 −4

FileStatusAddDelContent
kernel/kexec.cmodified+2−4View file

kernel/kexec.c

View file
diff --git a/kernel/kexec.c b/kernel/kexec.c
index 87ebe8a..474a847 100644
--- a/kernel/kexec.c
+++ b/kernel/kexec.c
@@ -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);