|
@@ -1811,9 +1811,9 @@ early_param("rcu_nocb_poll", parse_rcu_nocb_poll);
|
|
|
* Wake up any no-CBs CPUs' kthreads that were waiting on the just-ended
|
|
|
* grace period.
|
|
|
*/
|
|
|
-static void rcu_nocb_gp_cleanup(wait_queue_head_t *sq)
|
|
|
+static void rcu_nocb_gp_cleanup(struct swait_queue_head *sq)
|
|
|
{
|
|
|
- wake_up_all(sq);
|
|
|
+ swake_up_all(sq);
|
|
|
}
|
|
|
|
|
|
/*
|
|
@@ -1829,15 +1829,15 @@ static void rcu_nocb_gp_set(struct rcu_node *rnp, int nrq)
|
|
|
rnp->need_future_gp[(rnp->completed + 1) & 0x1] += nrq;
|
|
|
}
|
|
|
|
|
|
-static wait_queue_head_t *rcu_nocb_gp_get(struct rcu_node *rnp)
|
|
|
+static struct swait_queue_head *rcu_nocb_gp_get(struct rcu_node *rnp)
|
|
|
{
|
|
|
return &rnp->nocb_gp_wq[rnp->completed & 0x1];
|
|
|
}
|
|
|
|
|
|
static void rcu_init_one_nocb(struct rcu_node *rnp)
|
|
|
{
|
|
|
- init_waitqueue_head(&rnp->nocb_gp_wq[0]);
|
|
|
- init_waitqueue_head(&rnp->nocb_gp_wq[1]);
|
|
|
+ init_swait_queue_head(&rnp->nocb_gp_wq[0]);
|
|
|
+ init_swait_queue_head(&rnp->nocb_gp_wq[1]);
|
|
|
}
|
|
|
|
|
|
#ifndef CONFIG_RCU_NOCB_CPU_ALL
|
|
@@ -1862,7 +1862,7 @@ static void wake_nocb_leader(struct rcu_data *rdp, bool force)
|
|
|
if (READ_ONCE(rdp_leader->nocb_leader_sleep) || force) {
|
|
|
/* Prior smp_mb__after_atomic() orders against prior enqueue. */
|
|
|
WRITE_ONCE(rdp_leader->nocb_leader_sleep, false);
|
|
|
- wake_up(&rdp_leader->nocb_wq);
|
|
|
+ swake_up(&rdp_leader->nocb_wq);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -2074,7 +2074,7 @@ static void rcu_nocb_wait_gp(struct rcu_data *rdp)
|
|
|
*/
|
|
|
trace_rcu_future_gp(rnp, rdp, c, TPS("StartWait"));
|
|
|
for (;;) {
|
|
|
- wait_event_interruptible(
|
|
|
+ swait_event_interruptible(
|
|
|
rnp->nocb_gp_wq[c & 0x1],
|
|
|
(d = ULONG_CMP_GE(READ_ONCE(rnp->completed), c)));
|
|
|
if (likely(d))
|
|
@@ -2102,7 +2102,7 @@ wait_again:
|
|
|
/* Wait for callbacks to appear. */
|
|
|
if (!rcu_nocb_poll) {
|
|
|
trace_rcu_nocb_wake(my_rdp->rsp->name, my_rdp->cpu, "Sleep");
|
|
|
- wait_event_interruptible(my_rdp->nocb_wq,
|
|
|
+ swait_event_interruptible(my_rdp->nocb_wq,
|
|
|
!READ_ONCE(my_rdp->nocb_leader_sleep));
|
|
|
/* Memory barrier handled by smp_mb() calls below and repoll. */
|
|
|
} else if (firsttime) {
|
|
@@ -2177,7 +2177,7 @@ wait_again:
|
|
|
* List was empty, wake up the follower.
|
|
|
* Memory barriers supplied by atomic_long_add().
|
|
|
*/
|
|
|
- wake_up(&rdp->nocb_wq);
|
|
|
+ swake_up(&rdp->nocb_wq);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -2198,7 +2198,7 @@ static void nocb_follower_wait(struct rcu_data *rdp)
|
|
|
if (!rcu_nocb_poll) {
|
|
|
trace_rcu_nocb_wake(rdp->rsp->name, rdp->cpu,
|
|
|
"FollowerSleep");
|
|
|
- wait_event_interruptible(rdp->nocb_wq,
|
|
|
+ swait_event_interruptible(rdp->nocb_wq,
|
|
|
READ_ONCE(rdp->nocb_follower_head));
|
|
|
} else if (firsttime) {
|
|
|
/* Don't drown trace log with "Poll"! */
|
|
@@ -2357,7 +2357,7 @@ void __init rcu_init_nohz(void)
|
|
|
static void __init rcu_boot_init_nocb_percpu_data(struct rcu_data *rdp)
|
|
|
{
|
|
|
rdp->nocb_tail = &rdp->nocb_head;
|
|
|
- init_waitqueue_head(&rdp->nocb_wq);
|
|
|
+ init_swait_queue_head(&rdp->nocb_wq);
|
|
|
rdp->nocb_follower_tail = &rdp->nocb_follower_head;
|
|
|
}
|
|
|
|
|
@@ -2507,7 +2507,7 @@ static bool rcu_nocb_cpu_needs_barrier(struct rcu_state *rsp, int cpu)
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
-static void rcu_nocb_gp_cleanup(wait_queue_head_t *sq)
|
|
|
+static void rcu_nocb_gp_cleanup(struct swait_queue_head *sq)
|
|
|
{
|
|
|
}
|
|
|
|
|
@@ -2515,7 +2515,7 @@ static void rcu_nocb_gp_set(struct rcu_node *rnp, int nrq)
|
|
|
{
|
|
|
}
|
|
|
|
|
|
-static wait_queue_head_t *rcu_nocb_gp_get(struct rcu_node *rnp)
|
|
|
+static struct swait_queue_head *rcu_nocb_gp_get(struct rcu_node *rnp)
|
|
|
{
|
|
|
return NULL;
|
|
|
}
|