rcu: Uninline multi-use function: finish_rcuwait()
This is a rarely used function, so uninlining its 3 instructions is probably a win or a wash - but the main motivation is to make <linux/rcuwait.h> independent of task_struct details. Signed-off-by: Ingo Molnar <mingo@kernel.org> Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
This commit is contained in:
parent
c099290310
commit
58d4292bd0
@ -47,11 +47,7 @@ static inline void prepare_to_rcuwait(struct rcuwait *w)
|
|||||||
rcu_assign_pointer(w->task, current);
|
rcu_assign_pointer(w->task, current);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void finish_rcuwait(struct rcuwait *w)
|
extern void finish_rcuwait(struct rcuwait *w);
|
||||||
{
|
|
||||||
rcu_assign_pointer(w->task, NULL);
|
|
||||||
__set_current_state(TASK_RUNNING);
|
|
||||||
}
|
|
||||||
|
|
||||||
#define rcuwait_wait_event(w, condition, state) \
|
#define rcuwait_wait_event(w, condition, state) \
|
||||||
({ \
|
({ \
|
||||||
|
@ -407,6 +407,13 @@ void __wait_rcu_gp(bool checktiny, int n, call_rcu_func_t *crcu_array,
|
|||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(__wait_rcu_gp);
|
EXPORT_SYMBOL_GPL(__wait_rcu_gp);
|
||||||
|
|
||||||
|
void finish_rcuwait(struct rcuwait *w)
|
||||||
|
{
|
||||||
|
rcu_assign_pointer(w->task, NULL);
|
||||||
|
__set_current_state(TASK_RUNNING);
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL_GPL(finish_rcuwait);
|
||||||
|
|
||||||
#ifdef CONFIG_DEBUG_OBJECTS_RCU_HEAD
|
#ifdef CONFIG_DEBUG_OBJECTS_RCU_HEAD
|
||||||
void init_rcu_head(struct rcu_head *head)
|
void init_rcu_head(struct rcu_head *head)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user