lkml.org 
[lkml]   [2011]   [Nov]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Subject[PATCH -v2 0/4] x86: check stack overflows more reliably
Date
Hi,

This patch series adds the following three features about stack
overflow checking. The (3) feature works if the sysctl parameter
is enabled.

(1) add user mode vm check
The kernel stack overflow is checked in stack_overflow_check(),
which may wrongly detect the overflow if the user stack pointer
points to the kernel stack intentionally or accidentally.
To avoid this misdetection, bail out early if the user stack is
used.

(2) check stack overflow in detail
Currently, only kernel stack is checked for the overflow,
which is not sufficient for systems that need a high reliability.
To enhance it, expand stack overflow checking to IRQ and
exception stacks.

(3) panic on stack overflow
Currently, kernel messages are output on the detection of
stack overflow. Similarly, its's not sufficient for systems
that need a high reliability since it may corrupt data and the
additional corruption may occur due to reading them. To enhance
reliability, cause a panic for the overflows according to the
sysctl parameter. In addition, it is also useful for analyzing
the reason why it occurred using kdump which is a crash dumping
mechanism. This option is disabled by default in sysctl.


Changes in v2:
- Remove DEBUG_STACKOVERFLOW_DETAIL option in Kconfig.
- Change the default overflow checking to the detail-check instead
of original one that only checks the kernel stack overflow.
- Remove the changes related to binary sysctl.

Thanks,

---
Mitsuo Hayasaka (4):
x86: cleanup the range of stack overflow checking
x86: panic on detection of stack overflow
x86: check stack overflow in detail
[BUGFIX] x86: add user_mode_vm check in stack_overflow_check


Documentation/sysctl/kernel.txt | 14 ++++++++++++++
arch/x86/Kconfig.debug | 7 +++++--
arch/x86/kernel/irq_32.c | 2 ++
arch/x86/kernel/irq_64.c | 36 ++++++++++++++++++++++++++++++------
include/linux/kernel.h | 1 +
kernel/sysctl.c | 9 +++++++++
6 files changed, 61 insertions(+), 8 deletions(-)
--
Mitsuo Hayasaka (mitsuo.hayasaka.hu@hitachi.com)


\
 
 \ /
  Last update: 2011-11-29 07:05    [from the cache]
©2003-2011 Jasper Spaans