diff options
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/rcutree.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/kernel/rcutree.c b/kernel/rcutree.c index e486f7c3ffb8..3731141d8ad7 100644 --- a/kernel/rcutree.c +++ b/kernel/rcutree.c | |||
@@ -907,6 +907,12 @@ static void rcu_report_qs_rsp(struct rcu_state *rsp, unsigned long flags) | |||
907 | unsigned long gp_duration; | 907 | unsigned long gp_duration; |
908 | 908 | ||
909 | WARN_ON_ONCE(!rcu_gp_in_progress(rsp)); | 909 | WARN_ON_ONCE(!rcu_gp_in_progress(rsp)); |
910 | |||
911 | /* | ||
912 | * Ensure that all grace-period and pre-grace-period activity | ||
913 | * is seen before the assignment to rsp->completed. | ||
914 | */ | ||
915 | smp_mb(); /* See above block comment. */ | ||
910 | gp_duration = jiffies - rsp->gp_start; | 916 | gp_duration = jiffies - rsp->gp_start; |
911 | if (gp_duration > rsp->gp_max) | 917 | if (gp_duration > rsp->gp_max) |
912 | rsp->gp_max = gp_duration; | 918 | rsp->gp_max = gp_duration; |