context_tracking: Rename context_tracking_user_enter/exit() to user_enter/exit_callable()
authorFrederic Weisbecker <frederic@kernel.org>
Wed, 8 Jun 2022 14:40:21 +0000 (16:40 +0200)
committerPaul E. McKenney <paulmck@kernel.org>
Thu, 30 Jun 2022 00:03:27 +0000 (17:03 -0700)
context_tracking_user_enter() and context_tracking_user_exit() are
ASM callable versions of user_enter() and user_exit() for architectures
that didn't manage to check the context tracking static key from ASM.
Change those function names to better reflect their purpose.

[ frederic: Apply Max Filippov feedback. ]

Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Neeraj Upadhyay <quic_neeraju@quicinc.com>
Cc: Uladzislau Rezki <uladzislau.rezki@sony.com>
Cc: Joel Fernandes <joel@joelfernandes.org>
Cc: Boqun Feng <boqun.feng@gmail.com>
Cc: Nicolas Saenz Julienne <nsaenz@kernel.org>
Cc: Marcelo Tosatti <mtosatti@redhat.com>
Cc: Xiongfeng Wang <wangxiongfeng2@huawei.com>
Cc: Yu Liao <liaoyu15@huawei.com>
Cc: Phil Auld <pauld@redhat.com>
Cc: Paul Gortmaker<paul.gortmaker@windriver.com>
Cc: Alex Belits <abelits@marvell.com>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Reviewed-by: Nicolas Saenz Julienne <nsaenzju@redhat.com>
Tested-by: Nicolas Saenz Julienne <nsaenzju@redhat.com>
arch/arm/kernel/entry-header.S
arch/csky/kernel/entry.S
arch/riscv/kernel/entry.S
arch/xtensa/kernel/entry.S
include/linux/context_tracking.h
kernel/context_tracking.c

index 5865621..95def2b 100644 (file)
@@ -369,10 +369,10 @@ ALT_UP_B(.L1_\@)
 #ifdef CONFIG_CONTEXT_TRACKING
        .if     \save
        stmdb   sp!, {r0-r3, ip, lr}
-       bl      context_tracking_user_exit
+       bl      user_exit_callable
        ldmia   sp!, {r0-r3, ip, lr}
        .else
-       bl      context_tracking_user_exit
+       bl      user_exit_callable
        .endif
 #endif
        .endm
@@ -381,10 +381,10 @@ ALT_UP_B(.L1_\@)
 #ifdef CONFIG_CONTEXT_TRACKING
        .if     \save
        stmdb   sp!, {r0-r3, ip, lr}
-       bl      context_tracking_user_enter
+       bl      user_enter_callable
        ldmia   sp!, {r0-r3, ip, lr}
        .else
-       bl      context_tracking_user_enter
+       bl      user_enter_callable
        .endif
 #endif
        .endm
index a4ababf..bc734d1 100644 (file)
@@ -23,7 +23,7 @@
        mfcr    a0, epsr
        btsti   a0, 31
        bt      1f
-       jbsr    context_tracking_user_exit
+       jbsr    user_exit_callable
        ldw     a0, (sp, LSAVE_A0)
        ldw     a1, (sp, LSAVE_A1)
        ldw     a2, (sp, LSAVE_A2)
@@ -160,7 +160,7 @@ ret_from_exception:
        cmpnei  r10, 0
        bt      exit_work
 #ifdef CONFIG_CONTEXT_TRACKING
-       jbsr    context_tracking_user_enter
+       jbsr    user_enter_callable
 #endif
 1:
 #ifdef CONFIG_PREEMPTION
index 2e5b88c..12f6bba 100644 (file)
@@ -112,11 +112,11 @@ _save_context:
 #endif
 
 #ifdef CONFIG_CONTEXT_TRACKING
-       /* If previous state is in user mode, call context_tracking_user_exit. */
+       /* If previous state is in user mode, call user_exit_callable(). */
        li   a0, SR_PP
        and a0, s1, a0
        bnez a0, skip_context_tracking
-       call context_tracking_user_exit
+       call user_exit_callable
 skip_context_tracking:
 #endif
 
@@ -270,7 +270,7 @@ resume_userspace:
        bnez s1, work_pending
 
 #ifdef CONFIG_CONTEXT_TRACKING
-       call context_tracking_user_enter
+       call user_enter_callable
 #endif
 
        /* Save unwound kernel stack pointer in thread_info */
index e3eae64..d72bcaf 100644 (file)
@@ -458,7 +458,7 @@ KABI_W      or      a3, a3, a2
 #ifdef CONFIG_CONTEXT_TRACKING
        l32i            abi_tmp0, a1, PT_PS
        bbci.l          abi_tmp0, PS_UM_BIT, 1f
-       abi_call        context_tracking_user_exit
+       abi_call        user_exit_callable
 1:
 #endif
 
@@ -545,7 +545,7 @@ common_exception_return:
 
 .Lexit_tif_loop_user:
 #ifdef CONFIG_CONTEXT_TRACKING
-       abi_call        context_tracking_user_enter
+       abi_call        user_enter_callable
 #endif
 #ifdef CONFIG_HAVE_HW_BREAKPOINT
        _bbci.l         abi_saved0, TIF_DB_DISABLED, 1f
index 7730351..69532cd 100644 (file)
@@ -19,8 +19,8 @@ extern void __ct_user_exit(enum ctx_state state);
 
 extern void context_tracking_enter(enum ctx_state state);
 extern void context_tracking_exit(enum ctx_state state);
-extern void context_tracking_user_enter(void);
-extern void context_tracking_user_exit(void);
+extern void user_enter_callable(void);
+extern void user_exit_callable(void);
 
 static inline void user_enter(void)
 {
index 88c60ab..8f7dd57 100644 (file)
@@ -134,19 +134,22 @@ void context_tracking_enter(enum ctx_state state)
 NOKPROBE_SYMBOL(context_tracking_enter);
 EXPORT_SYMBOL_GPL(context_tracking_enter);
 
-/*
- * OBSOLETE:
- * This function should be noinstr but it unsafely calls local_irq_restore(),
- * involving illegal RCU uses through tracing and lockdep.
+/**
+ * user_enter_callable() - Unfortunate ASM callable version of user_enter() for
+ *                        archs that didn't manage to check the context tracking
+ *                        static key from low level code.
+ *
+ * This OBSOLETE function should be noinstr but it unsafely calls
+ * local_irq_restore(), involving illegal RCU uses through tracing and lockdep.
  * This is unlikely to be fixed as this function is obsolete. The preferred
  * way is to call user_enter_irqoff(). It should be the arch entry code
  * responsibility to call into context tracking with IRQs disabled.
  */
-void context_tracking_user_enter(void)
+void user_enter_callable(void)
 {
        user_enter();
 }
-NOKPROBE_SYMBOL(context_tracking_user_enter);
+NOKPROBE_SYMBOL(user_enter_callable);
 
 /**
  * __ct_user_exit - Inform the context tracking that the CPU is
@@ -208,19 +211,22 @@ void context_tracking_exit(enum ctx_state state)
 NOKPROBE_SYMBOL(context_tracking_exit);
 EXPORT_SYMBOL_GPL(context_tracking_exit);
 
-/*
- * OBSOLETE:
- * This function should be noinstr but it unsafely calls local_irq_save(),
+/**
+ * user_exit_callable() - Unfortunate ASM callable version of user_exit() for
+ *                       archs that didn't manage to check the context tracking
+ *                       static key from low level code.
+ *
+ * This OBSOLETE function should be noinstr but it unsafely calls local_irq_save(),
  * involving illegal RCU uses through tracing and lockdep. This is unlikely
  * to be fixed as this function is obsolete. The preferred way is to call
  * user_exit_irqoff(). It should be the arch entry code responsibility to
  * call into context tracking with IRQs disabled.
  */
-void context_tracking_user_exit(void)
+void user_exit_callable(void)
 {
        user_exit();
 }
-NOKPROBE_SYMBOL(context_tracking_user_exit);
+NOKPROBE_SYMBOL(user_exit_callable);
 
 void __init context_tracking_cpu_set(int cpu)
 {