[PATCH Dovetail v2 6/6] arm: irq_pipeline: Fix IRQ state checking in trap entry paths
Florian Bezdeka <[email protected]>
| Newsgroups | dev.linux.lists.xenomai |
|---|---|
| Message-ID | <20260610-wip-flo-v7-1-arm-pipelining-fixes-v2-6-62c9c477f8f2@siemens.com> |
A couple of trap handlers where checking the hardware IRQ state after inband migration instead of the inband stage state. As we now have arch_kentry_irqs_enabled() available we can migrate all callers. Signed-off-by: Florian Bezdeka <[email protected]> --- arch/arm/kernel/hw_breakpoint.c | 2 +- arch/arm/mm/alignment.c | 2 +- arch/arm/mm/fault.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/arch/arm/kernel/hw_breakpoint.c b/arch/arm/kernel/hw_breakpoint.c index d4b7953eff35d4c0194dec9aed7f7b17af5cf1f4..419d35143ddb81c7d92c620db9df03f54384e418 100644 --- a/arch/arm/kernel/hw_breakpoint.c +++ b/arch/arm/kernel/hw_breakpoint.c @@ -951,7 +951,7 @@ static int hw_breakpoint_pending(unsigned long addr, unsigned int fsr, preempt_disable(); - if (interrupts_enabled(regs)) + if (arch_kentry_irqs_enabled(regs)) local_irq_enable(); /* We only handle watchpoints and hardware breakpoints. */ diff --git a/arch/arm/mm/alignment.c b/arch/arm/mm/alignment.c index 1d457f22a3e7db8b71006b673dd20646847de3c1..935bc061fc63bb90cb7090aef048812e7d2622b6 100644 --- a/arch/arm/mm/alignment.c +++ b/arch/arm/mm/alignment.c @@ -817,7 +817,7 @@ do_alignment(unsigned long addr, unsigned int fsr, struct pt_regs *regs) mark_trap_entry(ARM_TRAP_ALIGNMENT, regs); - if (interrupts_enabled(regs)) + if (arch_kentry_irqs_enabled(regs)) local_irq_enable(); instrptr = instruction_pointer(regs); diff --git a/arch/arm/mm/fault.c b/arch/arm/mm/fault.c index 60982ec0627464dd389e1c9b106858bc92ccf260..37e043718f0abc75f8b3409c0f269e6a7166923e 100644 --- a/arch/arm/mm/fault.c +++ b/arch/arm/mm/fault.c @@ -340,7 +340,7 @@ do_kernel_address_page_fault(struct mm_struct *mm, unsigned long addr, * PTE or PTE permission fault. This may happen in exceptional * circumstances and need the fixup tables to be walked. */ - if (interrupts_enabled(regs)) + if (arch_kentry_irqs_enabled(regs)) local_irq_enable(); __do_kernel_fault(mm, addr, fsr, regs); -- 2.54.0