diff options
| author | Dmitry Shmidt <dimitrysh@google.com> | 2016-08-11 15:12:05 -0700 |
|---|---|---|
| committer | Dmitry Shmidt <dimitrysh@google.com> | 2016-08-11 15:12:05 -0700 |
| commit | 1f369b24e2987c1b29c88ffcbd0ca99cddabe01c (patch) | |
| tree | 9890a7ff909f71bc4f252f227ecb2532ace2d7fe /arch/x86/kernel/pvclock.c | |
| parent | b558f17a13b10761eb6f838e713425b9e83f8a01 (diff) | |
| parent | 133cec911c639d2cdf544ed602442951f702e08c (diff) | |
Merge tag 'v4.4.17' into android-4.4.y
This is the 4.4.17 stable release
Diffstat (limited to 'arch/x86/kernel/pvclock.c')
| -rw-r--r-- | arch/x86/kernel/pvclock.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/x86/kernel/pvclock.c b/arch/x86/kernel/pvclock.c index 2f355d229a58..bf0ce75735b0 100644 --- a/arch/x86/kernel/pvclock.c +++ b/arch/x86/kernel/pvclock.c @@ -66,6 +66,8 @@ u8 pvclock_read_flags(struct pvclock_vcpu_time_info *src) do { version = __pvclock_read_cycles(src, &ret, &flags); + /* Make sure that the version double-check is last. */ + smp_rmb(); } while ((src->version & 1) || version != src->version); return flags & valid_flags; @@ -80,6 +82,8 @@ cycle_t pvclock_clocksource_read(struct pvclock_vcpu_time_info *src) do { version = __pvclock_read_cycles(src, &ret, &flags); + /* Make sure that the version double-check is last. */ + smp_rmb(); } while ((src->version & 1) || version != src->version); if (unlikely((flags & PVCLOCK_GUEST_STOPPED) != 0)) { |
