aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/arm/include/asm/cp15.h2
-rw-r--r--arch/arm/vdso/vgettimeofday.c5
2 files changed, 5 insertions, 2 deletions
diff --git a/arch/arm/include/asm/cp15.h b/arch/arm/include/asm/cp15.h
index 07e27f212dc7..d2453e2d3f1f 100644
--- a/arch/arm/include/asm/cp15.h
+++ b/arch/arm/include/asm/cp15.h
@@ -68,6 +68,8 @@
68#define BPIALL __ACCESS_CP15(c7, 0, c5, 6) 68#define BPIALL __ACCESS_CP15(c7, 0, c5, 6)
69#define ICIALLU __ACCESS_CP15(c7, 0, c5, 0) 69#define ICIALLU __ACCESS_CP15(c7, 0, c5, 0)
70 70
71#define CNTVCT __ACCESS_CP15_64(1, c14)
72
71extern unsigned long cr_alignment; /* defined in entry-armv.S */ 73extern unsigned long cr_alignment; /* defined in entry-armv.S */
72 74
73static inline unsigned long get_cr(void) 75static inline unsigned long get_cr(void)
diff --git a/arch/arm/vdso/vgettimeofday.c b/arch/arm/vdso/vgettimeofday.c
index a9dd619c6c29..7bdbf5d5c47d 100644
--- a/arch/arm/vdso/vgettimeofday.c
+++ b/arch/arm/vdso/vgettimeofday.c
@@ -18,9 +18,9 @@
18#include <linux/compiler.h> 18#include <linux/compiler.h>
19#include <linux/hrtimer.h> 19#include <linux/hrtimer.h>
20#include <linux/time.h> 20#include <linux/time.h>
21#include <asm/arch_timer.h>
22#include <asm/barrier.h> 21#include <asm/barrier.h>
23#include <asm/bug.h> 22#include <asm/bug.h>
23#include <asm/cp15.h>
24#include <asm/page.h> 24#include <asm/page.h>
25#include <asm/unistd.h> 25#include <asm/unistd.h>
26#include <asm/vdso_datapage.h> 26#include <asm/vdso_datapage.h>
@@ -123,7 +123,8 @@ static notrace u64 get_ns(struct vdso_data *vdata)
123 u64 cycle_now; 123 u64 cycle_now;
124 u64 nsec; 124 u64 nsec;
125 125
126 cycle_now = arch_counter_get_cntvct(); 126 isb();
127 cycle_now = read_sysreg(CNTVCT);
127 128
128 cycle_delta = (cycle_now - vdata->cs_cycle_last) & vdata->cs_mask; 129 cycle_delta = (cycle_now - vdata->cs_cycle_last) & vdata->cs_mask;
129 130