sparc64: Do not disable interrupts in nmi_cpu_busy()
authorDavid S. Miller <davem@davemloft.net>
Tue, 12 Aug 2014 03:45:01 +0000 (20:45 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 30 Oct 2014 16:38:25 +0000 (09:38 -0700)
commit08a7f3c1e2d1513649883ce6d54a96d2cfe9e950
tree96ea4bb7310df98b37b36bdf6003b7c991dc04e9
parentead061b0198612788364d44127b35ba3c82d7e85
sparc64: Do not disable interrupts in nmi_cpu_busy()

[ 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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/sparc/kernel/nmi.c