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(&regs);
-       regs.softe = IRQS_ENABLED;
+       regs.softe = IRQS_DISABLED;
        regs.msr |= MSR_EE;
 
        /*


Reply via email to