[PATCH Dovetail v2 2/2] arm64: irq_pipeline: Cleanup demotion check for el1

Florian Bezdeka <[email protected]>
Newsgroups dev.linux.lists.xenomai
Message-ID <20260217-wip-flo-v6-19-dovetail-rebase-v2-2-45fc326a166a@siemens.com>
While reviewing some of the low level pipeline code I realized that
the checks for task demotion are confusing on arm64.

el0: There is no demotion check as arm6_exit_to_user_mode() will
     already do the right thing. No need to update that path.

el1: The demotion check was unnecessary and "inactive" as
     user_mode(regs) is never true on el1, we are serving an IRQ over
     kernel mode. Removing the check to avoid further confusion.

Signed-off-by: Florian Bezdeka <[email protected]>
---
 arch/arm64/kernel/entry-common.c | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/arch/arm64/kernel/entry-common.c b/arch/arm64/kernel/entry-common.c
index 07fa70713ce04eaf3df9223354babcecde923280..2337987b7edd88d36703071ba0ac9880d043b5e5 100644
--- a/arch/arm64/kernel/entry-common.c
+++ b/arch/arm64/kernel/entry-common.c
@@ -90,10 +90,6 @@ static noinstr void arm64_pipeline_el1_irq(struct pt_regs *regs,
 		prevd = handle_irq_pipelined_prepare(regs);
 		do_interrupt_handler(regs, handler);
 		handle_irq_pipelined_finish(prevd, regs);
-		if (running_inband() && user_mode(regs)) {
-			stall_inband_nocheck();
-			irqentry_exit_to_user_mode(regs);
-		}
 		instrumentation_end();
 		mte_check_tfsr_exit();
 		return;

-- 
2.53.0
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.