Make hard_irq_disable() actually hard-disable interrupts
authorPaul Mackerras <paulus@samba.org>
Fri, 15 Jun 2012 04:51:39 +0000 (14:51 +1000)
committerPaul Mackerras <paulus@samba.org>
Fri, 15 Jun 2012 05:27:41 +0000 (15:27 +1000)
At present, hard_irq_disable() does nothing on powerpc because of
this code in include/linux/interrupt.h:

    #ifndef hard_irq_disable
    #define hard_irq_disable()      do { } while(0)
    #endif

So we need to make our hard_irq_disable be a macro.  It was previously
a macro until commit 7230c56441 ("powerpc: Rework lazy-interrupt
handling") changed it to a static inline function.

Cc: stable@vger.kernel.org
Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
--
 arch/powerpc/include/asm/hw_irq.h |    3 +++
 1 file changed, 3 insertions(+)

arch/powerpc/include/asm/hw_irq.h

index c9aac24b02e267ab9d171af7d1087863e0ef0dc8..32b394f3b8541bbd4f91d4257f6cc5c8926fd05c 100644 (file)
@@ -100,6 +100,9 @@ static inline void hard_irq_disable(void)
        get_paca()->irq_happened |= PACA_IRQ_HARD_DIS;
 }
 
+/* include/linux/interrupt.h needs hard_irq_disable to be a macro */
+#define hard_irq_disable       hard_irq_disable
+
 /*
  * This is called by asynchronous interrupts to conditionally
  * re-enable hard interrupts when soft-disabled after having