context_tracking: Rename context_tracking_user_enter/exit() to user_enter/exit_callable()
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>
This commit is contained in:
parent
0ffc781a19
commit
f163f0302a
@ -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
|
||||
|
@ -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
|
||||
|
@ -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 */
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
{
|
||||
|
@ -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)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user