Christophe Leroy's on April 7, 2020 4:16 am: > regs->softe doesn't exist on PPC32. > > Add helpers to get and set regs->softe. > Those helpers will void on PPC32. > > Signed-off-by: Christophe Leroy <christophe.le...@c-s.fr> > --- > arch/powerpc/include/asm/hw_irq.h | 21 +++++++++++++++++++-- > 1 file changed, 19 insertions(+), 2 deletions(-) > > diff --git a/arch/powerpc/include/asm/hw_irq.h > b/arch/powerpc/include/asm/hw_irq.h > index e0e71777961f..e69466867d5f 100644 > --- a/arch/powerpc/include/asm/hw_irq.h > +++ b/arch/powerpc/include/asm/hw_irq.h > @@ -39,6 +39,8 @@ > #define PACA_IRQ_MUST_HARD_MASK (PACA_IRQ_EE) > #endif > > +#endif /* CONFIG_PPC64 */ > + > /* > * flags for paca->irq_soft_mask > */ > @@ -47,8 +49,6 @@ > #define IRQS_PMI_DISABLED 2 > #define IRQS_ALL_DISABLED (IRQS_DISABLED | IRQS_PMI_DISABLED) > > -#endif /* CONFIG_PPC64 */ > - > #ifndef __ASSEMBLY__ > > extern void replay_system_reset(void); > @@ -282,6 +282,15 @@ extern void irq_set_pending_from_srr1(unsigned long > srr1); > > extern void force_external_irq_replay(void); > > +static inline unsigned long get_softe(struct pt_regs *regs) > +{ > + return regs->softe; > +} > + > +static inline void set_softe(struct pt_regs *regs, unsigned long val) > +{ > + regs->softe = val; > +} > #else /* CONFIG_PPC64 */ > > static inline unsigned long arch_local_save_flags(void) > @@ -350,6 +359,14 @@ static inline bool arch_irq_disabled_regs(struct pt_regs > *regs) > > static inline void may_hard_irq_enable(void) { } > > +static inline unsigned long get_softe(struct pt_regs *regs) > +{ > + return 0; > +} > + > +static inline void set_softe(struct pt_regs *regs, unsigned long val) > +{ > +}
If this goes into a general shared header, I would prefer if we could do something a bit more general (at least with the name). I think get_softe() could just be replaced with arch_irq_disabled_regs(). For set, could we call it irq_soft_mask_regs_set_state()? 32 has no soft mask state in regs, so it's more obvious that it's a no-op. Or you could make 32-bit version a BUG(), and then always guard it with IS_ENABLED(). Thanks, Nick