Re: [PATCH] powerpc/entry: Use hard_irq_disable() in arch_interrupt_exit_prepare()
Mukesh Kumar Chaurasiya <[email protected]>
| Newsgroups | gmane.linux.ports.ppc.embedded |
|---|---|
| Message-ID | <an_xbqRgm4RaRw0r__14019.051105582$1786769884$gmane$org@li-1a3e774c-28e4-11b2-a85c-acc9f2883e29.ibm.com> |
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; /*