aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/rcutree.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/rcutree.c')
-rw-r--r--kernel/rcutree.c22
1 files changed, 2 insertions, 20 deletions
diff --git a/kernel/rcutree.c b/kernel/rcutree.c
index ba06207b1dd3..a7c6bce1af83 100644
--- a/kernel/rcutree.c
+++ b/kernel/rcutree.c
@@ -1613,18 +1613,9 @@ EXPORT_SYMBOL_GPL(call_rcu_bh);
1613 */ 1613 */
1614void synchronize_sched(void) 1614void synchronize_sched(void)
1615{ 1615{
1616 struct rcu_synchronize rcu;
1617
1618 if (rcu_blocking_is_gp()) 1616 if (rcu_blocking_is_gp())
1619 return; 1617 return;
1620 1618 wait_rcu_gp(call_rcu_sched);
1621 init_rcu_head_on_stack(&rcu.head);
1622 init_completion(&rcu.completion);
1623 /* Will wake me after RCU finished. */
1624 call_rcu_sched(&rcu.head, wakeme_after_rcu);
1625 /* Wait for it. */
1626 wait_for_completion(&rcu.completion);
1627 destroy_rcu_head_on_stack(&rcu.head);
1628} 1619}
1629EXPORT_SYMBOL_GPL(synchronize_sched); 1620EXPORT_SYMBOL_GPL(synchronize_sched);
1630 1621
@@ -1639,18 +1630,9 @@ EXPORT_SYMBOL_GPL(synchronize_sched);
1639 */ 1630 */
1640void synchronize_rcu_bh(void) 1631void synchronize_rcu_bh(void)
1641{ 1632{
1642 struct rcu_synchronize rcu;
1643
1644 if (rcu_blocking_is_gp()) 1633 if (rcu_blocking_is_gp())
1645 return; 1634 return;
1646 1635 wait_rcu_gp(call_rcu_bh);
1647 init_rcu_head_on_stack(&rcu.head);
1648 init_completion(&rcu.completion);
1649 /* Will wake me after RCU finished. */
1650 call_rcu_bh(&rcu.head, wakeme_after_rcu);
1651 /* Wait for it. */
1652 wait_for_completion(&rcu.completion);
1653 destroy_rcu_head_on_stack(&rcu.head);
1654} 1636}
1655EXPORT_SYMBOL_GPL(synchronize_rcu_bh); 1637EXPORT_SYMBOL_GPL(synchronize_rcu_bh);
1656 1638