Skip to contentSkip to conversation

powerpc: to access local paca after hard irq disabled

PATCH New Tiejun Chen 1 participant 1 message Jul 15, 2013

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 powerpc: to access local paca after hard irq disabled

We can access paca directly after hard interrupt disabled, and this can avoid accessing wrong paca when using get_paca() in preempt case.

---
 arch/powerpc/include/asm/hw_irq.h |    7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)
arch/powerpc/include/asm/hw_irq.h +4 -3
index ba713f1..10be1dd 100644
@@ -96,10 +96,11 @@ static inline bool arch_irqs_disabled(void)
 #endif
 
 #define hard_irq_disable()	do {			\
-	u8 _was_enabled = get_paca()->soft_enabled;	\
+	u8 _was_enabled;				\
 	__hard_irq_disable();				\
-	get_paca()->soft_enabled = 0;			\
-	get_paca()->irq_happened |= PACA_IRQ_HARD_DIS;	\
+	_was_enabled = local_paca->soft_enabled;	\
+	local_paca->soft_enabled = 0;			\
+	local_paca->irq_happened |= PACA_IRQ_HARD_DIS;	\
 	if (_was_enabled)				\
 		trace_hardirqs_off();			\
 } while(0)
Signature · 1 line
1.7.9.5