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;
/*