mirror of
https://github.com/torvalds/linux.git
synced 2026-05-31 10:33:41 +02:00
arm64: entry: Clean out some indirection
The conversion to generic IRQ entry left some functions in the EL1 (kernel) IRQ entry path very shallow, so drop the __inner_functions() where appropriate, saving some time and stack. This is not a fix but an optimization. Drop stale comments about irqentry_enter/exit() while we are at it. Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
This commit is contained in:
parent
e2e21a9757
commit
555827a064
|
|
@ -34,20 +34,12 @@
|
|||
* Handle IRQ/context state management when entering from kernel mode.
|
||||
* Before this function is called it is not safe to call regular kernel code,
|
||||
* instrumentable code, or any code which may trigger an exception.
|
||||
*
|
||||
* This is intended to match the logic in irqentry_enter(), handling the kernel
|
||||
* mode transitions only.
|
||||
*/
|
||||
static __always_inline irqentry_state_t __enter_from_kernel_mode(struct pt_regs *regs)
|
||||
{
|
||||
return irqentry_enter(regs);
|
||||
}
|
||||
|
||||
static noinstr irqentry_state_t enter_from_kernel_mode(struct pt_regs *regs)
|
||||
{
|
||||
irqentry_state_t state;
|
||||
|
||||
state = __enter_from_kernel_mode(regs);
|
||||
state = irqentry_enter(regs);
|
||||
mte_check_tfsr_entry();
|
||||
mte_disable_tco_entry(current);
|
||||
|
||||
|
|
@ -58,21 +50,12 @@ static noinstr irqentry_state_t enter_from_kernel_mode(struct pt_regs *regs)
|
|||
* Handle IRQ/context state management when exiting to kernel mode.
|
||||
* After this function returns it is not safe to call regular kernel code,
|
||||
* instrumentable code, or any code which may trigger an exception.
|
||||
*
|
||||
* This is intended to match the logic in irqentry_exit(), handling the kernel
|
||||
* mode transitions only, and with preemption handled elsewhere.
|
||||
*/
|
||||
static __always_inline void __exit_to_kernel_mode(struct pt_regs *regs,
|
||||
irqentry_state_t state)
|
||||
{
|
||||
irqentry_exit(regs, state);
|
||||
}
|
||||
|
||||
static void noinstr exit_to_kernel_mode(struct pt_regs *regs,
|
||||
irqentry_state_t state)
|
||||
{
|
||||
mte_check_tfsr_exit();
|
||||
__exit_to_kernel_mode(regs, state);
|
||||
irqentry_exit(regs, state);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -80,17 +63,12 @@ static void noinstr exit_to_kernel_mode(struct pt_regs *regs,
|
|||
* Before this function is called it is not safe to call regular kernel code,
|
||||
* instrumentable code, or any code which may trigger an exception.
|
||||
*/
|
||||
static __always_inline void __enter_from_user_mode(struct pt_regs *regs)
|
||||
static __always_inline void arm64_enter_from_user_mode(struct pt_regs *regs)
|
||||
{
|
||||
enter_from_user_mode(regs);
|
||||
mte_disable_tco_entry(current);
|
||||
}
|
||||
|
||||
static __always_inline void arm64_enter_from_user_mode(struct pt_regs *regs)
|
||||
{
|
||||
__enter_from_user_mode(regs);
|
||||
}
|
||||
|
||||
/*
|
||||
* Handle IRQ/context state management when exiting to user mode.
|
||||
* After this function returns it is not safe to call regular kernel code,
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user