diff options
Diffstat (limited to 'arch/x86/kernel/tsc_sync.c')
| -rw-r--r-- | arch/x86/kernel/tsc_sync.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/x86/kernel/tsc_sync.c b/arch/x86/kernel/tsc_sync.c index 9ffb01c31c4..1c0dfbca87c 100644 --- a/arch/x86/kernel/tsc_sync.c +++ b/arch/x86/kernel/tsc_sync.c | |||
| @@ -46,7 +46,9 @@ static __cpuinit void check_tsc_warp(void) | |||
| 46 | cycles_t start, now, prev, end; | 46 | cycles_t start, now, prev, end; |
| 47 | int i; | 47 | int i; |
| 48 | 48 | ||
| 49 | rdtsc_barrier(); | ||
| 49 | start = get_cycles(); | 50 | start = get_cycles(); |
| 51 | rdtsc_barrier(); | ||
| 50 | /* | 52 | /* |
| 51 | * The measurement runs for 20 msecs: | 53 | * The measurement runs for 20 msecs: |
| 52 | */ | 54 | */ |
| @@ -61,7 +63,9 @@ static __cpuinit void check_tsc_warp(void) | |||
| 61 | */ | 63 | */ |
| 62 | __raw_spin_lock(&sync_lock); | 64 | __raw_spin_lock(&sync_lock); |
| 63 | prev = last_tsc; | 65 | prev = last_tsc; |
| 66 | rdtsc_barrier(); | ||
| 64 | now = get_cycles(); | 67 | now = get_cycles(); |
| 68 | rdtsc_barrier(); | ||
| 65 | last_tsc = now; | 69 | last_tsc = now; |
| 66 | __raw_spin_unlock(&sync_lock); | 70 | __raw_spin_unlock(&sync_lock); |
| 67 | 71 | ||
