lkml.org 
[lkml]   [2012]   [Jun]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[patch 1/5] x86: mce: Disable preemption when calling raise_local()
    raise_mce() has a code path which does not disable preemption when the
    raise_local() is called. The per cpu variable access in raise_local()
    depends on preemption being disabled to be functional. So that code
    path was either never tested or never tested with CONFIG_DEBUG_PREEMPT
    enabled.

    Add the missing preempt_disable/enable() pair around the call.

    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    ---
    arch/x86/kernel/cpu/mcheck/mce-inject.c | 4 ++++
    1 file changed, 4 insertions(+)

    Index: tip/arch/x86/kernel/cpu/mcheck/mce-inject.c
    ===================================================================
    --- tip.orig/arch/x86/kernel/cpu/mcheck/mce-inject.c
    +++ tip/arch/x86/kernel/cpu/mcheck/mce-inject.c
    @@ -194,7 +194,11 @@ static void raise_mce(struct mce *m)
    put_online_cpus();
    } else
    #endif
    + {
    + preempt_disable();
    raise_local();
    + preempt_enable();
    + }
    }

    /* Error injection interface */



    \
     
     \ /
      Last update: 2012-06-07 00:21    [W:0.021 / U:0.248 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site