]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
arm64: entry: Use irqentry_{enter_from,exit_to}_kernel_mode()
authorMark Rutland <mark.rutland@arm.com>
Tue, 7 Apr 2026 13:16:48 +0000 (14:16 +0100)
committerCatalin Marinas <catalin.marinas@arm.com>
Wed, 8 Apr 2026 16:40:04 +0000 (17:40 +0100)
The generic irqentry code now provides irqentry_enter_from_kernel_mode()
and irqentry_exit_to_kernel_mode(), which can be used when an exception
is known to be taken from kernel mode. These can be inlined into
architecture-specific entry code, and avoid redundant work to test
whether the exception was taken from user mode.

Use these in arm64_enter_from_kernel_mode() and
arm64_exit_to_kernel_mode(), which are only used for exceptions known to
be taken from kernel mode. This will remove a small amount of redundant
work, and will permit further changes to arm64_exit_to_kernel_mode() in
subsequent patches.

There should be no funcitonal change as a result of this patch.

Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Cc: Andy Lutomirski <luto@kernel.org>
Cc: Jinjie Ruan <ruanjinjie@huawei.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@kernel.org>
Cc: Vladimir Murzin <vladimir.murzin@arm.com>
Cc: Will Deacon <will@kernel.org>
Reviewed-by: Jinjie Ruan <ruanjinjie@huawei.com>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
arch/arm64/kernel/entry-common.c

index 3d01cdacdc7a2ca4626c4703c3669f2fad242e9d..16a65987a6a9b032bcfbc832691be25dd3d320e8 100644 (file)
@@ -39,7 +39,7 @@ static noinstr irqentry_state_t arm64_enter_from_kernel_mode(struct pt_regs *reg
 {
        irqentry_state_t state;
 
-       state = irqentry_enter(regs);
+       state = irqentry_enter_from_kernel_mode(regs);
        mte_check_tfsr_entry();
        mte_disable_tco_entry(current);
 
@@ -55,7 +55,7 @@ static void noinstr arm64_exit_to_kernel_mode(struct pt_regs *regs,
                                              irqentry_state_t state)
 {
        mte_check_tfsr_exit();
-       irqentry_exit(regs, state);
+       irqentry_exit_to_kernel_mode(regs, state);
 }
 
 /*