diff options
-rw-r--r-- | include/linux/rcutree.h | 6 | ||||
-rw-r--r-- | kernel/rcutree_plugin.h | 21 |
2 files changed, 22 insertions, 5 deletions
diff --git a/include/linux/rcutree.h b/include/linux/rcutree.h index 46e9ab3ee6e1..9642c6bcb399 100644 --- a/include/linux/rcutree.h +++ b/include/linux/rcutree.h | |||
@@ -76,11 +76,7 @@ static inline void __rcu_read_unlock_bh(void) | |||
76 | 76 | ||
77 | extern void call_rcu_sched(struct rcu_head *head, | 77 | extern void call_rcu_sched(struct rcu_head *head, |
78 | void (*func)(struct rcu_head *rcu)); | 78 | void (*func)(struct rcu_head *rcu)); |
79 | 79 | extern void synchronize_rcu_expedited(void); | |
80 | static inline void synchronize_rcu_expedited(void) | ||
81 | { | ||
82 | synchronize_sched_expedited(); | ||
83 | } | ||
84 | 80 | ||
85 | static inline void synchronize_rcu_bh_expedited(void) | 81 | static inline void synchronize_rcu_bh_expedited(void) |
86 | { | 82 | { |
diff --git a/kernel/rcutree_plugin.h b/kernel/rcutree_plugin.h index c0cb783aa16a..ebd20ee7707d 100644 --- a/kernel/rcutree_plugin.h +++ b/kernel/rcutree_plugin.h | |||
@@ -393,6 +393,17 @@ void call_rcu(struct rcu_head *head, void (*func)(struct rcu_head *rcu)) | |||
393 | EXPORT_SYMBOL_GPL(call_rcu); | 393 | EXPORT_SYMBOL_GPL(call_rcu); |
394 | 394 | ||
395 | /* | 395 | /* |
396 | * Wait for an rcu-preempt grace period. We are supposed to expedite the | ||
397 | * grace period, but this is the crude slow compatability hack, so just | ||
398 | * invoke synchronize_rcu(). | ||
399 | */ | ||
400 | void synchronize_rcu_expedited(void) | ||
401 | { | ||
402 | synchronize_rcu(); | ||
403 | } | ||
404 | EXPORT_SYMBOL_GPL(synchronize_rcu_expedited); | ||
405 | |||
406 | /* | ||
396 | * Check to see if there is any immediate preemptable-RCU-related work | 407 | * Check to see if there is any immediate preemptable-RCU-related work |
397 | * to be done. | 408 | * to be done. |
398 | */ | 409 | */ |
@@ -565,6 +576,16 @@ void call_rcu(struct rcu_head *head, void (*func)(struct rcu_head *rcu)) | |||
565 | EXPORT_SYMBOL_GPL(call_rcu); | 576 | EXPORT_SYMBOL_GPL(call_rcu); |
566 | 577 | ||
567 | /* | 578 | /* |
579 | * Wait for an rcu-preempt grace period, but make it happen quickly. | ||
580 | * But because preemptable RCU does not exist, map to rcu-sched. | ||
581 | */ | ||
582 | void synchronize_rcu_expedited(void) | ||
583 | { | ||
584 | synchronize_sched_expedited(); | ||
585 | } | ||
586 | EXPORT_SYMBOL_GPL(synchronize_rcu_expedited); | ||
587 | |||
588 | /* | ||
568 | * Because preemptable RCU does not exist, it never has any work to do. | 589 | * Because preemptable RCU does not exist, it never has any work to do. |
569 | */ | 590 | */ |
570 | static int rcu_preempt_pending(int cpu) | 591 | static int rcu_preempt_pending(int cpu) |