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:
[...]
quoted
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;
/*