|
@@ -1403,6 +1403,8 @@ EXPORT_SYMBOL_GPL(call_rcu_bh);
|
|
|
*/
|
|
|
static int __rcu_pending(struct rcu_state *rsp, struct rcu_data *rdp)
|
|
|
{
|
|
|
+ struct rcu_node *rnp = rdp->mynode;
|
|
|
+
|
|
|
rdp->n_rcu_pending++;
|
|
|
|
|
|
/* Check for CPU stalls, if enabled. */
|
|
@@ -1427,13 +1429,13 @@ static int __rcu_pending(struct rcu_state *rsp, struct rcu_data *rdp)
|
|
|
}
|
|
|
|
|
|
/* Has another RCU grace period completed? */
|
|
|
- if (ACCESS_ONCE(rsp->completed) != rdp->completed) { /* outside lock */
|
|
|
+ if (ACCESS_ONCE(rnp->completed) != rdp->completed) { /* outside lock */
|
|
|
rdp->n_rp_gp_completed++;
|
|
|
return 1;
|
|
|
}
|
|
|
|
|
|
/* Has a new RCU grace period started? */
|
|
|
- if (ACCESS_ONCE(rsp->gpnum) != rdp->gpnum) { /* outside lock */
|
|
|
+ if (ACCESS_ONCE(rnp->gpnum) != rdp->gpnum) { /* outside lock */
|
|
|
rdp->n_rp_gp_started++;
|
|
|
return 1;
|
|
|
}
|