In preparation of porting PPC32 to C syscall entry/exit, add PPC32 version of following helpers: __hard_irq_enable() __hard_irq_disable() __hard_EE_RI_disable() __hard_RI_enable()
Signed-off-by: Christophe Leroy <christophe.le...@c-s.fr> --- arch/powerpc/include/asm/hw_irq.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/arch/powerpc/include/asm/hw_irq.h b/arch/powerpc/include/asm/hw_irq.h index e0e71777961f..6ccf07de6665 100644 --- a/arch/powerpc/include/asm/hw_irq.h +++ b/arch/powerpc/include/asm/hw_irq.h @@ -321,6 +321,16 @@ static inline void arch_local_irq_disable(void) mtmsr(mfmsr() & ~MSR_EE); } +static inline void arch_local_recovery_disable(void) +{ + if (IS_ENABLED(CONFIG_BOOKE)) + wrtee(0); + else if (IS_ENABLED(CONFIG_PPC_8xx)) + wrtspr(SPRN_NRI); + else + mtmsr(mfmsr() & ~(MSR_EE | MSR_RI)); +} + static inline void arch_local_irq_enable(void) { if (IS_ENABLED(CONFIG_BOOKE)) @@ -343,6 +353,11 @@ static inline bool arch_irqs_disabled(void) #define hard_irq_disable() arch_local_irq_disable() +#define __hard_irq_enable() arch_local_irq_enable() +#define __hard_irq_disable() arch_local_irq_disable() +#define __hard_EE_RI_disable() arch_local_recovery_disable() +#define __hard_RI_enable() arch_local_irq_disable() + static inline bool arch_irq_disabled_regs(struct pt_regs *regs) { return !(regs->msr & MSR_EE); -- 2.25.0