summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2025-10-27 09:44:40 +0100
committerIngo Molnar <mingo@kernel.org>2025-11-04 08:31:47 +0100
commit7702a9c2856794b6bf961b408eba3bacb753bd5b (patch)
treee8f3b6fc3889fb2e9a5881eed6ea56f75f256f69 /include
parent54a5ab56242f96555999aaa41228f77b4a76e386 (diff)
downloadlwn-7702a9c2856794b6bf961b408eba3bacb753bd5b.tar.gz
lwn-7702a9c2856794b6bf961b408eba3bacb753bd5b.zip
entry: Inline irqentry_enter/exit_from/to_user_mode()
There is no point to have this as a function which just inlines enter_from_user_mode(). The function call overhead is larger than the function itself. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Signed-off-by: Ingo Molnar <mingo@kernel.org> Reviewed-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> Link: https://patch.msgid.link/20251027084306.715309918@linutronix.de
Diffstat (limited to 'include')
-rw-r--r--include/linux/irq-entry-common.h13
1 files changed, 11 insertions, 2 deletions
diff --git a/include/linux/irq-entry-common.h b/include/linux/irq-entry-common.h
index 9b1f386ffeb1..83c9d841d9e1 100644
--- a/include/linux/irq-entry-common.h
+++ b/include/linux/irq-entry-common.h
@@ -278,7 +278,10 @@ static __always_inline void exit_to_user_mode(void)
*
* The function establishes state (lockdep, RCU (context tracking), tracing)
*/
-void irqentry_enter_from_user_mode(struct pt_regs *regs);
+static __always_inline void irqentry_enter_from_user_mode(struct pt_regs *regs)
+{
+ enter_from_user_mode(regs);
+}
/**
* irqentry_exit_to_user_mode - Interrupt exit work
@@ -293,7 +296,13 @@ void irqentry_enter_from_user_mode(struct pt_regs *regs);
* Interrupt exit is not invoking #1 which is the syscall specific one time
* work.
*/
-void irqentry_exit_to_user_mode(struct pt_regs *regs);
+static __always_inline void irqentry_exit_to_user_mode(struct pt_regs *regs)
+{
+ instrumentation_begin();
+ exit_to_user_mode_prepare(regs);
+ instrumentation_end();
+ exit_to_user_mode();
+}
#ifndef irqentry_state
/**