lkml.org 
[lkml]   [2009]   [Feb]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH] [8/10] x86: MCE: Use force_sig_info to kill process in machine check
    Date

    Impact: bug fix (with tolerant == 3)

    do_exit cannot be called directly from the exception handler because
    it can sleep and the exception handler runs on the exception stack.
    Use force_sig() instead.

    Based on a earlier patch by Ying Huang who debugged the problem.

    Signed-off-by: Andi Kleen <ak@linux.intel.com>

    ---
    arch/x86/kernel/cpu/mcheck/mce_64.c | 4 ++--
    1 file changed, 2 insertions(+), 2 deletions(-)

    Index: linux/arch/x86/kernel/cpu/mcheck/mce_64.c
    ===================================================================
    --- linux.orig/arch/x86/kernel/cpu/mcheck/mce_64.c 2009-02-12 11:30:51.000000000 +0100
    +++ linux/arch/x86/kernel/cpu/mcheck/mce_64.c 2009-02-12 12:10:20.000000000 +0100
    @@ -297,11 +297,11 @@
    * If we know that the error was in user space, send a
    * SIGBUS. Otherwise, panic if tolerance is low.
    *
    - * do_exit() takes an awful lot of locks and has a slight
    + * force_sig() takes an awful lot of locks and has a slight
    * risk of deadlocking.
    */
    if (user_space) {
    - do_exit(SIGBUS);
    + force_sig(SIGBUS, current);
    } else if (panic_on_oops || tolerant < 2) {
    mce_panic("Uncorrected machine check",
    &panicm, mcestart);

    \
     
     \ /
      Last update: 2009-02-12 13:43    [W:3.301 / U:0.052 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site