On Wed, Jul 08, 2026 at 09:57:44AM +0530, Shrikanth Hegde wrote:
> Hi Mukesh.
> 
> On 7/7/26 10:54 PM, Mukesh Kumar Chaurasiya (IBM) wrote:
<... snip ...>

> >             /* Can avoid a test-and-clear because NMIs do not call this */
> >             clear_thread_local_flags(_TLF_NAPPING);
> > @@ -286,14 +293,6 @@ static inline void 
> > arch_interrupt_async_enter_prepare(struct pt_regs *regs)
> >   static inline void arch_interrupt_async_exit_prepare(struct pt_regs *regs)
> >   {
> > -   /*
> > -    * Adjust at exit so the main handler sees the true NIA. This must
> > -    * come before irq_exit() because irq_exit can enable interrupts, and
> > -    * if another interrupt is taken before nap_adjust_return has run
> > -    * here, then that interrupt would return directly to idle nap return.
> > -    */
> > -   nap_adjust_return(regs);
> > -
> >     arch_interrupt_exit_prepare(regs);
> >   }
> 
> This makes arch_interrupt_async_exit_prepare same as 
> arch_interrupt_exit_prepare.
> Maybe remove arch_interrupt_async_exit_prepare?
> 
Hey,

`arch_interrupt_async_exit_prepare` and `arch_interrupt_exit_prepare`,
both are marked static inline. So the generated assembly will have no
impact. I kept it this way coz it was consistent with how we implemented
other macros like `DEFINE_INTERRUPT_HANDLER`.

Regards,
Mukesh

> > diff --git a/arch/powerpc/include/asm/interrupt.h 
> > b/arch/powerpc/include/asm/interrupt.h
> > index fb42a664ae54..1b45a49e9bed 100644
> > --- a/arch/powerpc/include/asm/interrupt.h
> > +++ b/arch/powerpc/include/asm/interrupt.h
> > @@ -246,6 +246,7 @@ interrupt_handler void func(struct pt_regs *regs)       
> >                 \
> >     instrumentation_begin();                                        \
> >     irq_enter_rcu();                                                \
> >     ____##func (regs);                                              \
> > +   nap_adjust_return(regs);                                        \
> >     irq_exit_rcu();                                                 \
> >     instrumentation_end();                                          \
> >     arch_interrupt_async_exit_prepare(regs);                        \
> 

Reply via email to