aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYogesh Tillu <yogesh.tillu@linaro.org>2015-08-10 11:56:25 +0530
committerYogesh Tillu <yogesh.tillu@linaro.org>2015-09-08 16:09:56 +0530
commit6a009b7a286012c3ab51c03a0fbb72decad17d19 (patch)
treeeafc2edd1e423d4632359a7f997f0be3067a0bea
parent26e3b9eb22f33afe83a1a9c464634d24ca03894d (diff)
ARM64: perf: override arch_perf_userspace_access()perf_mmap_working_v4.2-rc8perf_mmap
Override implementation of arch_perf_userspace_access() to enable or disable access to "perf hw counter" from userspace for mmap Signed-off-by: Yogesh Tillu <yogesh.tillu@linaro.org>
-rw-r--r--arch/arm64/kernel/perf_event.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/arm64/kernel/perf_event.c b/arch/arm64/kernel/perf_event.c
index b3aa2bf27d77..8c223d0d1593 100644
--- a/arch/arm64/kernel/perf_event.c
+++ b/arch/arm64/kernel/perf_event.c
@@ -1396,6 +1396,12 @@ void arch_perf_update_userpage(struct perf_event_mmap_page *userpg, u64 now)
userpg->cap_user_rdpmc = cpu_pmu->attr_rdpmc;
}
+void arch_perf_uspace_access(void *enable)
+{
+ cpu_pmu->attr_rdpmc = *(int *)enable;
+ asm volatile("msr pmuserenr_el0, %0" : : "r" (!!*(int *)enable));
+}
+
static void __init cpu_pmu_init(struct arm_pmu *armpmu)
{
int cpu;