Commit b6a4ae76 authored by Boqun Feng's avatar Boqun Feng Committed by Paul E. McKenney

rcu: Use rcu_callback_t in call_rcu*() and friends

As we now have rcu_callback_t typedefs as the type of rcu callbacks, we
should use it in call_rcu*() and friends as the type of parameters. This
could save us a few lines of code and make it clear which function
requires an rcu callbacks rather than other callbacks as its argument.

Besides, this can also help cscope to generate a better database for
code reading.
Signed-off-by: default avatarBoqun Feng <boqun.feng@gmail.com>
Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Reviewed-by: default avatarJosh Triplett <josh@joshtriplett.org>
parent 84778472
...@@ -160,7 +160,7 @@ void do_trace_rcu_torture_read(const char *rcutorturename, ...@@ -160,7 +160,7 @@ void do_trace_rcu_torture_read(const char *rcutorturename,
* more than one CPU). * more than one CPU).
*/ */
void call_rcu(struct rcu_head *head, void call_rcu(struct rcu_head *head,
void (*func)(struct rcu_head *head)); rcu_callback_t func);
#else /* #ifdef CONFIG_PREEMPT_RCU */ #else /* #ifdef CONFIG_PREEMPT_RCU */
...@@ -191,7 +191,7 @@ void call_rcu(struct rcu_head *head, ...@@ -191,7 +191,7 @@ void call_rcu(struct rcu_head *head,
* memory ordering guarantees. * memory ordering guarantees.
*/ */
void call_rcu_bh(struct rcu_head *head, void call_rcu_bh(struct rcu_head *head,
void (*func)(struct rcu_head *head)); rcu_callback_t func);
/** /**
* call_rcu_sched() - Queue an RCU for invocation after sched grace period. * call_rcu_sched() - Queue an RCU for invocation after sched grace period.
...@@ -213,7 +213,7 @@ void call_rcu_bh(struct rcu_head *head, ...@@ -213,7 +213,7 @@ void call_rcu_bh(struct rcu_head *head,
* memory ordering guarantees. * memory ordering guarantees.
*/ */
void call_rcu_sched(struct rcu_head *head, void call_rcu_sched(struct rcu_head *head,
void (*func)(struct rcu_head *rcu)); rcu_callback_t func);
void synchronize_sched(void); void synchronize_sched(void);
...@@ -274,7 +274,7 @@ do { \ ...@@ -274,7 +274,7 @@ do { \
* See the description of call_rcu() for more detailed information on * See the description of call_rcu() for more detailed information on
* memory ordering guarantees. * memory ordering guarantees.
*/ */
void call_rcu_tasks(struct rcu_head *head, void (*func)(struct rcu_head *head)); void call_rcu_tasks(struct rcu_head *head, rcu_callback_t func);
void synchronize_rcu_tasks(void); void synchronize_rcu_tasks(void);
void rcu_barrier_tasks(void); void rcu_barrier_tasks(void);
...@@ -1065,7 +1065,7 @@ static inline notrace void rcu_read_unlock_sched_notrace(void) ...@@ -1065,7 +1065,7 @@ static inline notrace void rcu_read_unlock_sched_notrace(void)
#define __kfree_rcu(head, offset) \ #define __kfree_rcu(head, offset) \
do { \ do { \
BUILD_BUG_ON(!__is_kfree_rcu_offset(offset)); \ BUILD_BUG_ON(!__is_kfree_rcu_offset(offset)); \
kfree_call_rcu(head, (void (*)(struct rcu_head *))(unsigned long)(offset)); \ kfree_call_rcu(head, (rcu_callback_t)(unsigned long)(offset)); \
} while (0) } while (0)
/** /**
......
...@@ -83,7 +83,7 @@ static inline void synchronize_sched_expedited(void) ...@@ -83,7 +83,7 @@ static inline void synchronize_sched_expedited(void)
} }
static inline void kfree_call_rcu(struct rcu_head *head, static inline void kfree_call_rcu(struct rcu_head *head,
void (*func)(struct rcu_head *rcu)) rcu_callback_t func)
{ {
call_rcu(head, func); call_rcu(head, func);
} }
......
...@@ -48,7 +48,7 @@ void synchronize_rcu_bh(void); ...@@ -48,7 +48,7 @@ void synchronize_rcu_bh(void);
void synchronize_sched_expedited(void); void synchronize_sched_expedited(void);
void synchronize_rcu_expedited(void); void synchronize_rcu_expedited(void);
void kfree_call_rcu(struct rcu_head *head, void (*func)(struct rcu_head *rcu)); void kfree_call_rcu(struct rcu_head *head, rcu_callback_t func);
/** /**
* synchronize_rcu_bh_expedited - Brute-force RCU-bh grace period * synchronize_rcu_bh_expedited - Brute-force RCU-bh grace period
......
...@@ -448,7 +448,7 @@ static void synchronize_rcu_busted(void) ...@@ -448,7 +448,7 @@ static void synchronize_rcu_busted(void)
} }
static void static void
call_rcu_busted(struct rcu_head *head, void (*func)(struct rcu_head *rcu)) call_rcu_busted(struct rcu_head *head, rcu_callback_t func)
{ {
/* This is a deliberate bug for testing purposes only! */ /* This is a deliberate bug for testing purposes only! */
func(head); func(head);
...@@ -523,7 +523,7 @@ static void srcu_torture_synchronize(void) ...@@ -523,7 +523,7 @@ static void srcu_torture_synchronize(void)
} }
static void srcu_torture_call(struct rcu_head *head, static void srcu_torture_call(struct rcu_head *head,
void (*func)(struct rcu_head *head)) rcu_callback_t func)
{ {
call_srcu(srcu_ctlp, head, func); call_srcu(srcu_ctlp, head, func);
} }
......
...@@ -387,7 +387,7 @@ static void srcu_flip(struct srcu_struct *sp) ...@@ -387,7 +387,7 @@ static void srcu_flip(struct srcu_struct *sp)
* srcu_struct structure. * srcu_struct structure.
*/ */
void call_srcu(struct srcu_struct *sp, struct rcu_head *head, void call_srcu(struct srcu_struct *sp, struct rcu_head *head,
void (*func)(struct rcu_head *head)) rcu_callback_t func)
{ {
unsigned long flags; unsigned long flags;
......
...@@ -44,7 +44,7 @@ struct rcu_ctrlblk; ...@@ -44,7 +44,7 @@ struct rcu_ctrlblk;
static void __rcu_process_callbacks(struct rcu_ctrlblk *rcp); static void __rcu_process_callbacks(struct rcu_ctrlblk *rcp);
static void rcu_process_callbacks(struct softirq_action *unused); static void rcu_process_callbacks(struct softirq_action *unused);
static void __call_rcu(struct rcu_head *head, static void __call_rcu(struct rcu_head *head,
void (*func)(struct rcu_head *rcu), rcu_callback_t func,
struct rcu_ctrlblk *rcp); struct rcu_ctrlblk *rcp);
#include "tiny_plugin.h" #include "tiny_plugin.h"
...@@ -203,7 +203,7 @@ EXPORT_SYMBOL_GPL(synchronize_sched); ...@@ -203,7 +203,7 @@ EXPORT_SYMBOL_GPL(synchronize_sched);
* Helper function for call_rcu() and call_rcu_bh(). * Helper function for call_rcu() and call_rcu_bh().
*/ */
static void __call_rcu(struct rcu_head *head, static void __call_rcu(struct rcu_head *head,
void (*func)(struct rcu_head *rcu), rcu_callback_t func,
struct rcu_ctrlblk *rcp) struct rcu_ctrlblk *rcp)
{ {
unsigned long flags; unsigned long flags;
...@@ -229,7 +229,7 @@ static void __call_rcu(struct rcu_head *head, ...@@ -229,7 +229,7 @@ static void __call_rcu(struct rcu_head *head,
* period. But since we have but one CPU, that would be after any * period. But since we have but one CPU, that would be after any
* quiescent state. * quiescent state.
*/ */
void call_rcu_sched(struct rcu_head *head, void (*func)(struct rcu_head *rcu)) void call_rcu_sched(struct rcu_head *head, rcu_callback_t func)
{ {
__call_rcu(head, func, &rcu_sched_ctrlblk); __call_rcu(head, func, &rcu_sched_ctrlblk);
} }
...@@ -239,7 +239,7 @@ EXPORT_SYMBOL_GPL(call_rcu_sched); ...@@ -239,7 +239,7 @@ EXPORT_SYMBOL_GPL(call_rcu_sched);
* Post an RCU bottom-half callback to be invoked after any subsequent * Post an RCU bottom-half callback to be invoked after any subsequent
* quiescent state. * quiescent state.
*/ */
void call_rcu_bh(struct rcu_head *head, void (*func)(struct rcu_head *rcu)) void call_rcu_bh(struct rcu_head *head, rcu_callback_t func)
{ {
__call_rcu(head, func, &rcu_bh_ctrlblk); __call_rcu(head, func, &rcu_bh_ctrlblk);
} }
......
...@@ -3017,7 +3017,7 @@ static void rcu_leak_callback(struct rcu_head *rhp) ...@@ -3017,7 +3017,7 @@ static void rcu_leak_callback(struct rcu_head *rhp)
* is expected to specify a CPU. * is expected to specify a CPU.
*/ */
static void static void
__call_rcu(struct rcu_head *head, void (*func)(struct rcu_head *rcu), __call_rcu(struct rcu_head *head, rcu_callback_t func,
struct rcu_state *rsp, int cpu, bool lazy) struct rcu_state *rsp, int cpu, bool lazy)
{ {
unsigned long flags; unsigned long flags;
...@@ -3088,7 +3088,7 @@ __call_rcu(struct rcu_head *head, void (*func)(struct rcu_head *rcu), ...@@ -3088,7 +3088,7 @@ __call_rcu(struct rcu_head *head, void (*func)(struct rcu_head *rcu),
/* /*
* Queue an RCU-sched callback for invocation after a grace period. * Queue an RCU-sched callback for invocation after a grace period.
*/ */
void call_rcu_sched(struct rcu_head *head, void (*func)(struct rcu_head *rcu)) void call_rcu_sched(struct rcu_head *head, rcu_callback_t func)
{ {
__call_rcu(head, func, &rcu_sched_state, -1, 0); __call_rcu(head, func, &rcu_sched_state, -1, 0);
} }
...@@ -3097,7 +3097,7 @@ EXPORT_SYMBOL_GPL(call_rcu_sched); ...@@ -3097,7 +3097,7 @@ EXPORT_SYMBOL_GPL(call_rcu_sched);
/* /*
* Queue an RCU callback for invocation after a quicker grace period. * Queue an RCU callback for invocation after a quicker grace period.
*/ */
void call_rcu_bh(struct rcu_head *head, void (*func)(struct rcu_head *rcu)) void call_rcu_bh(struct rcu_head *head, rcu_callback_t func)
{ {
__call_rcu(head, func, &rcu_bh_state, -1, 0); __call_rcu(head, func, &rcu_bh_state, -1, 0);
} }
...@@ -3111,7 +3111,7 @@ EXPORT_SYMBOL_GPL(call_rcu_bh); ...@@ -3111,7 +3111,7 @@ EXPORT_SYMBOL_GPL(call_rcu_bh);
* function may only be called from __kfree_rcu(). * function may only be called from __kfree_rcu().
*/ */
void kfree_call_rcu(struct rcu_head *head, void kfree_call_rcu(struct rcu_head *head,
void (*func)(struct rcu_head *rcu)) rcu_callback_t func)
{ {
__call_rcu(head, func, rcu_state_p, -1, 1); __call_rcu(head, func, rcu_state_p, -1, 1);
} }
......
...@@ -584,7 +584,7 @@ static void rcu_print_detail_task_stall(struct rcu_state *rsp); ...@@ -584,7 +584,7 @@ static void rcu_print_detail_task_stall(struct rcu_state *rsp);
static int rcu_print_task_stall(struct rcu_node *rnp); static int rcu_print_task_stall(struct rcu_node *rnp);
static void rcu_preempt_check_blocked_tasks(struct rcu_node *rnp); static void rcu_preempt_check_blocked_tasks(struct rcu_node *rnp);
static void rcu_preempt_check_callbacks(void); static void rcu_preempt_check_callbacks(void);
void call_rcu(struct rcu_head *head, void (*func)(struct rcu_head *rcu)); void call_rcu(struct rcu_head *head, rcu_callback_t func);
static void __init __rcu_init_preempt(void); static void __init __rcu_init_preempt(void);
static void rcu_initiate_boost(struct rcu_node *rnp, unsigned long flags); static void rcu_initiate_boost(struct rcu_node *rnp, unsigned long flags);
static void rcu_preempt_boost_start_gp(struct rcu_node *rnp); static void rcu_preempt_boost_start_gp(struct rcu_node *rnp);
......
...@@ -500,7 +500,7 @@ static void rcu_preempt_do_callbacks(void) ...@@ -500,7 +500,7 @@ static void rcu_preempt_do_callbacks(void)
/* /*
* Queue a preemptible-RCU callback for invocation after a grace period. * Queue a preemptible-RCU callback for invocation after a grace period.
*/ */
void call_rcu(struct rcu_head *head, void (*func)(struct rcu_head *rcu)) void call_rcu(struct rcu_head *head, rcu_callback_t func)
{ {
__call_rcu(head, func, rcu_state_p, -1, 0); __call_rcu(head, func, rcu_state_p, -1, 0);
} }
......
...@@ -534,7 +534,7 @@ static void rcu_spawn_tasks_kthread(void); ...@@ -534,7 +534,7 @@ static void rcu_spawn_tasks_kthread(void);
* Post an RCU-tasks callback. First call must be from process context * Post an RCU-tasks callback. First call must be from process context
* after the scheduler if fully operational. * after the scheduler if fully operational.
*/ */
void call_rcu_tasks(struct rcu_head *rhp, void (*func)(struct rcu_head *rhp)) void call_rcu_tasks(struct rcu_head *rhp, rcu_callback_t func)
{ {
unsigned long flags; unsigned long flags;
bool needwake; bool needwake;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment