[PATCH v2] Make hard_irq_disable() actually hard-disable interrupts

Subsystems: linux for powerpc (32-bit and 64-bit), the rest

STALE5228d REVIEWED: 2 (2M)

1 review trailer.

2 messages, 2 authors, 2012-06-15 · open the first message on its own page

[PATCH v2] Make hard_irq_disable() actually hard-disable interrupts

From: Paul Mackerras <hidden>
Date: 2012-06-15 04:51:39

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.

Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <redacted>
--
 arch/powerpc/include/asm/hw_irq.h |    3 +++
 1 file changed, 3 insertions(+)
diff --git a/arch/powerpc/include/asm/hw_irq.h b/arch/powerpc/include/asm/hw_irq.h
index c9aac24..32b394f 100644
--- a/arch/powerpc/include/asm/hw_irq.h
+++ b/arch/powerpc/include/asm/hw_irq.h
@@ -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

Re: [PATCH v2] Make hard_irq_disable() actually hard-disable interrupts

From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Date: 2012-06-15 06:02:17

On Fri, 2012-06-15 at 14:51 +1000, Paul Mackerras wrote:
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.

Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <redacted>
Add:

CC: <stable@kernel.org> [v3.4]

Before sending to Linus so it hits stable automagically.

Cheers,
Ben.
quoted hunk
--
 arch/powerpc/include/asm/hw_irq.h |    3 +++
 1 file changed, 3 insertions(+)
diff --git a/arch/powerpc/include/asm/hw_irq.h b/arch/powerpc/include/asm/hw_irq.h
index c9aac24..32b394f 100644
--- a/arch/powerpc/include/asm/hw_irq.h
+++ b/arch/powerpc/include/asm/hw_irq.h
@@ -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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help