OSDN Git Service

powerpc/64: Cleanup hard_irq_disable() macro
authorMadhavan Srinivasan <maddy@linux.vnet.ibm.com>
Wed, 20 Dec 2017 03:55:48 +0000 (09:25 +0530)
committerMichael Ellerman <mpe@ellerman.id.au>
Fri, 19 Jan 2018 11:37:00 +0000 (22:37 +1100)
Minor cleanup to use helper function for manipulating
paca->soft_enabled variable.

Suggested-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Madhavan Srinivasan <maddy@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/include/asm/hw_irq.h

index c1764fa..52afb15 100644 (file)
@@ -131,12 +131,11 @@ static inline bool arch_irqs_disabled(void)
 #endif
 
 #define hard_irq_disable()     do {                    \
-       u8 _was_enabled;                                \
+       unsigned long flags;                            \
        __hard_irq_disable();                           \
-       _was_enabled = local_paca->soft_enabled;        \
-       local_paca->soft_enabled = IRQS_DISABLED;\
+       flags = soft_enabled_set_return(IRQS_DISABLED); \
        local_paca->irq_happened |= PACA_IRQ_HARD_DIS;  \
-       if (_was_enabled == IRQS_ENABLED)       \
+       if (!arch_irqs_disabled_flags(flags))           \
                trace_hardirqs_off();                   \
 } while(0)