summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYogesh Tillu <yogesh.tillu@linaro.org>2015-03-20 12:48:45 +0530
committerYogesh Tillu <yogesh.tillu@linaro.org>2015-04-15 08:00:47 +0530
commit5be680ecefdbd840289134719e532bfba2f57466 (patch)
treed51d61b4ba01163f6957b94d19ff4346b3e49e55
parente85e07de27de42e779b8035d539beffd77f98686 (diff)
Added assembly instructions for barrier macros
Reviewed-by: Anders Roxell <anders.roxell@linaro.org> Signed-off-by: Yogesh Tillu <yogesh.tillu@linaro.org>
-rw-r--r--perf_rc_mmap.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/perf_rc_mmap.c b/perf_rc_mmap.c
index 838c869..2c404dc 100644
--- a/perf_rc_mmap.c
+++ b/perf_rc_mmap.c
@@ -20,7 +20,8 @@
#include <sys/mman.h>
#include <errno.h>
#include <string.h>
-#define barrier() asm volatile("" ::: "memory")
+#define barrier() asm volatile("dmb ish" ::: "memory")
+#define isb() asm volatile("isb" ::: "memory")
static int fddev = -1;
__attribute__((constructor)) static void
init(void)
@@ -42,6 +43,7 @@ static unsigned long rdpmc(unsigned int counter)
{
unsigned long int ret;
asm volatile("mrs %0, pmccntr_el0" : "=r" (ret));
+ isb();
return ret;
}