lkml.org 
[lkml]   [2014]   [Nov]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3.13 028/162] sparc64: Do not disable interrupts in nmi_cpu_busy()
    Date
    3.13.11.11 -stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: "David S. Miller" <davem@davemloft.net>

    [ Upstream commit 58556104e9cd0107a7a8d2692cf04ef31669f6e4 ]

    nmi_cpu_busy() is a SMP function call that just makes sure that all of the
    cpus are spinning using cpu cycles while the NMI test runs.

    It does not need to disable IRQs because we just care about NMIs executing
    which will even with 'normal' IRQs disabled.

    It is not legal to enable hard IRQs in a SMP cross call, in fact this bug
    triggers the BUG check in irq_work_run_list():

    BUG_ON(!irqs_disabled());

    Because now irq_work_run() is invoked from the tail of
    generic_smp_call_function_single_interrupt().

    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Kamal Mostafa <kamal@canonical.com>
    ---
    arch/sparc/kernel/nmi.c | 1 -
    1 file changed, 1 deletion(-)

    diff --git a/arch/sparc/kernel/nmi.c b/arch/sparc/kernel/nmi.c
    index 6479256..fce8ab1 100644
    --- a/arch/sparc/kernel/nmi.c
    +++ b/arch/sparc/kernel/nmi.c
    @@ -141,7 +141,6 @@ static inline unsigned int get_nmi_count(int cpu)

    static __init void nmi_cpu_busy(void *data)
    {
    - local_irq_enable_in_hardirq();
    while (endflag == 0)
    mb();
    }
    --
    1.9.1


    \
     
     \ /
      Last update: 2014-11-07 00:21    [W:4.022 / U:0.028 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site