|
@@ -2954,7 +2954,7 @@ void synchronize_sched(void)
|
|
|
"Illegal synchronize_sched() in RCU-sched read-side critical section");
|
|
|
if (rcu_blocking_is_gp())
|
|
|
return;
|
|
|
- if (rcu_expedited)
|
|
|
+ if (rcu_gp_is_expedited())
|
|
|
synchronize_sched_expedited();
|
|
|
else
|
|
|
wait_rcu_gp(call_rcu_sched);
|
|
@@ -2981,7 +2981,7 @@ void synchronize_rcu_bh(void)
|
|
|
"Illegal synchronize_rcu_bh() in RCU-bh read-side critical section");
|
|
|
if (rcu_blocking_is_gp())
|
|
|
return;
|
|
|
- if (rcu_expedited)
|
|
|
+ if (rcu_gp_is_expedited())
|
|
|
synchronize_rcu_bh_expedited();
|
|
|
else
|
|
|
wait_rcu_gp(call_rcu_bh);
|
|
@@ -3660,11 +3660,12 @@ static int rcu_pm_notify(struct notifier_block *self,
|
|
|
case PM_HIBERNATION_PREPARE:
|
|
|
case PM_SUSPEND_PREPARE:
|
|
|
if (nr_cpu_ids <= 256) /* Expediting bad for large systems. */
|
|
|
- rcu_expedited = 1;
|
|
|
+ rcu_expedite_gp();
|
|
|
break;
|
|
|
case PM_POST_HIBERNATION:
|
|
|
case PM_POST_SUSPEND:
|
|
|
- rcu_expedited = 0;
|
|
|
+ if (nr_cpu_ids <= 256) /* Expediting bad for large systems. */
|
|
|
+ rcu_unexpedite_gp();
|
|
|
break;
|
|
|
default:
|
|
|
break;
|