* [PATCH Dovetail] arm: irq_pipeline: Fix IRQ state checking in do_page_fault()
@ 2026-09-29 20:55 Florian Bezdeka
2026-10-15 10:19 ` Philippe Gerum
0 siblings, 1 reply; 3+ messages in thread
From: Florian Bezdeka @ 2026-09-29 20:55 UTC (permalink / raw)
To: xenomai; +Cc: Florian Bezdeka, Philippe Gerum, Jan Kiszka
When correcting some fault handlers in the patch series referenced below
one call site was missed. That is corrected now.
do_page_fault() migrates to the inband stage and enabled the inband IRQs
depending on the hardware state. Instead, we have to check if the inband
stage was stalled on kernel entry.
Link: https://lore.kernel.org/xenomai/20260610-wip-flo-v7-1-arm-pipelining-fixes-v2-6-62c9c477f8f2@siemens.com/
Signed-off-by: Florian Bezdeka <florian.bezdeka@siemens.com>
---
Found while scanning the code for necessary 7.3-rc adjustments.
To: xenomai@lists.linux.dev
Cc: Philippe Gerum <rpm@xenomai.org>
Cc: Jan Kiszka <jan.kiszka@siemens.com>
---
arch/arm/mm/fault.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm/mm/fault.c b/arch/arm/mm/fault.c
index 8f7feb1a228fc12c2d14389f865b13e23d11460d..91d0afe7985d55b424009cc29d8f3343cfca90fd 100644
--- a/arch/arm/mm/fault.c
+++ b/arch/arm/mm/fault.c
@@ -376,7 +376,7 @@ do_page_fault(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
irqflags = dovetail_fault_entry(ARM_TRAP_ACCESS, regs);
/* Enable interrupts if they were enabled in the parent context. */
- if (interrupts_enabled(regs))
+ if (!arch_kentry_test_stalled(regs))
local_irq_enable();
/*
---
base-commit: 58e8e0f74c2b20f6228b7d327ec2e955ffd5b491
change-id: 20260929-wip-flo-7-2-arm-pipeline-fix-939fc6370fb2
Best regards,
--
Florian Bezdeka <florian.bezdeka@siemens.com>
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH Dovetail] arm: irq_pipeline: Fix IRQ state checking in do_page_fault()
2026-09-29 20:55 [PATCH Dovetail] arm: irq_pipeline: Fix IRQ state checking in do_page_fault() Florian Bezdeka
@ 2026-10-15 10:19 ` Philippe Gerum
2026-10-15 10:31 ` Florian Bezdeka
0 siblings, 1 reply; 3+ messages in thread
From: Philippe Gerum @ 2026-10-15 10:19 UTC (permalink / raw)
To: Florian Bezdeka; +Cc: xenomai, Jan Kiszka
Florian Bezdeka <florian.bezdeka@siemens.com> writes:
> When correcting some fault handlers in the patch series referenced below
> one call site was missed. That is corrected now.
>
> do_page_fault() migrates to the inband stage and enabled the inband IRQs
> depending on the hardware state. Instead, we have to check if the inband
> stage was stalled on kernel entry.
>
> Link: https://lore.kernel.org/xenomai/20260610-wip-flo-v7-1-arm-pipelining-fixes-v2-6-62c9c477f8f2@siemens.com/
> Signed-off-by: Florian Bezdeka <florian.bezdeka@siemens.com>
> ---
> Found while scanning the code for necessary 7.3-rc adjustments.
>
> To: xenomai@lists.linux.dev
> Cc: Philippe Gerum <rpm@xenomai.org>
> Cc: Jan Kiszka <jan.kiszka@siemens.com>
> ---
> arch/arm/mm/fault.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/arm/mm/fault.c b/arch/arm/mm/fault.c
> index 8f7feb1a228fc12c2d14389f865b13e23d11460d..91d0afe7985d55b424009cc29d8f3343cfca90fd 100644
> --- a/arch/arm/mm/fault.c
> +++ b/arch/arm/mm/fault.c
> @@ -376,7 +376,7 @@ do_page_fault(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
> irqflags = dovetail_fault_entry(ARM_TRAP_ACCESS, regs);
>
> /* Enable interrupts if they were enabled in the parent context. */
> - if (interrupts_enabled(regs))
> + if (!arch_kentry_test_stalled(regs))
> local_irq_enable();
>
> /*
>
> ---
> base-commit: 58e8e0f74c2b20f6228b7d327ec2e955ffd5b491
> change-id: 20260929-wip-flo-7-2-arm-pipeline-fix-939fc6370fb2
>
> Best regards,
This patch [1] uncovered an issue with the series introducing
dovetail_fault_entry() and friends. Fixed by that patch [2] living in
next/evl-6.12.y-cip-evl for now, on top of a backport of the series
mentioned above. Tests look ok so far, I'll update all the affected
branches next.
[1] https://lore.kernel.org/xenomai/20260929-wip-flo-7-2-arm-pipeline-fix-v1-1-300c70cfae7f@siemens.com/T/#u
[2] https://gitlab.com/Xenomai/xenomai4/linux-evl/-/commit/020af735209333b180993f03534baf078fcddfb9
--
Philippe.
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH Dovetail] arm: irq_pipeline: Fix IRQ state checking in do_page_fault()
2026-10-15 10:19 ` Philippe Gerum
@ 2026-10-15 10:31 ` Florian Bezdeka
0 siblings, 0 replies; 3+ messages in thread
From: Florian Bezdeka @ 2026-10-15 10:31 UTC (permalink / raw)
To: Philippe Gerum; +Cc: xenomai, Jan Kiszka
On Thu, 2026-10-15 at 12:19 +0200, Philippe Gerum wrote:
> Florian Bezdeka <florian.bezdeka@siemens.com> writes:
>
> > When correcting some fault handlers in the patch series referenced below
> > one call site was missed. That is corrected now.
> >
> > do_page_fault() migrates to the inband stage and enabled the inband IRQs
> > depending on the hardware state. Instead, we have to check if the inband
> > stage was stalled on kernel entry.
> >
> > Link: https://lore.kernel.org/xenomai/20260610-wip-flo-v7-1-arm-pipelining-fixes-v2-6-62c9c477f8f2@siemens.com/
> > Signed-off-by: Florian Bezdeka <florian.bezdeka@siemens.com>
> > ---
> > Found while scanning the code for necessary 7.3-rc adjustments.
> >
> > To: xenomai@lists.linux.dev
> > Cc: Philippe Gerum <rpm@xenomai.org>
> > Cc: Jan Kiszka <jan.kiszka@siemens.com>
> > ---
> > arch/arm/mm/fault.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/arch/arm/mm/fault.c b/arch/arm/mm/fault.c
> > index 8f7feb1a228fc12c2d14389f865b13e23d11460d..91d0afe7985d55b424009cc29d8f3343cfca90fd 100644
> > --- a/arch/arm/mm/fault.c
> > +++ b/arch/arm/mm/fault.c
> > @@ -376,7 +376,7 @@ do_page_fault(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
> > irqflags = dovetail_fault_entry(ARM_TRAP_ACCESS, regs);
> >
> > /* Enable interrupts if they were enabled in the parent context. */
> > - if (interrupts_enabled(regs))
> > + if (!arch_kentry_test_stalled(regs))
> > local_irq_enable();
> >
> > /*
> >
> > ---
> > base-commit: 58e8e0f74c2b20f6228b7d327ec2e955ffd5b491
> > change-id: 20260929-wip-flo-7-2-arm-pipeline-fix-939fc6370fb2
> >
> > Best regards,
>
> This patch [1] uncovered an issue with the series introducing
> dovetail_fault_entry() and friends. Fixed by that patch [2] living in
> next/evl-6.12.y-cip-evl for now, on top of a backport of the series
> mentioned above. Tests look ok so far, I'll update all the affected
> branches next.
>
> [1] https://lore.kernel.org/xenomai/20260929-wip-flo-7-2-arm-pipeline-fix-v1-1-300c70cfae7f@siemens.com/T/#u
> [2] https://gitlab.com/Xenomai/xenomai4/linux-evl/-/commit/020af735209333b180993f03534baf078fcddfb9
Thanks for debugging this!
I have to go an check why my testing did not reveal that.
I will combine [1], this patch and [2] in a new version of the patch
series. I will publish that once I applied it on top of 7.3 - as soon as
I have 7.3 available...
PS: I'm currently rebasing against latest 7.2 stable releases. Having
fun with arm64 right now...
Best regards,
Florian
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-10-15 10:32 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-29 20:55 [PATCH Dovetail] arm: irq_pipeline: Fix IRQ state checking in do_page_fault() Florian Bezdeka
2026-10-15 10:19 ` Philippe Gerum
2026-10-15 10:31 ` Florian Bezdeka
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.