Re: [PATCH] powerpc/entry: Use hard_irq_disable() in arch_interrupt_exit_prepare()
Mukesh Kumar Chaurasiya <[email protected]>
| Newsgroups | org.ozlabs.lists.linuxppc-dev,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
On Fri, Aug 14, 2026 at 11:42:22AM +0530, Mukesh Kumar Chaurasiya wrote: > On Fri, Aug 14, 2026 at 11:06:43AM +0530, Shrikanth Hegde wrote: > [...] > > This is good explanation, but what i not understanding is, > > > > why pattern of setting PACA_IRQ_HARD_DIS changed? > > Previous code at interrupt_exit_kernel_prepare which did local_irq_disable too. > > > > Please check where was PACA_IRQ_HARD_DIS set without GENERIC_ENTRY which was preventing > > this from happening? > > That's an excellent point. I think we are looking at this incorrectly, > If this is related to the nested soft replay interrupt than this whole > dynamics changes, local_irq_disable will work for the actual interrupt > but when we go nested something is telling that the nested interrupt > that interrupts are enabled. Let me look at this more deeply. > > Regards, > Mukesh Hey Venkat, Can you try this diff, diff --git a/arch/powerpc/kernel/irq_64.c b/arch/powerpc/kernel/irq_64.c index d5c48d1b0a31..2fbfebef74fe 100644 --- a/arch/powerpc/kernel/irq_64.c +++ b/arch/powerpc/kernel/irq_64.c @@ -117,7 +117,7 @@ static __no_kcsan void __replay_soft_interrupts(void) local_paca->irq_happened |= PACA_IRQ_REPLAYING; ppc_save_regs(®s); - regs.softe = IRQS_ENABLED; + regs.softe = IRQS_DISABLED; regs.msr |= MSR_EE; /*