summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNeil Leeder <nleeder@codeaurora.org>2014-10-21 16:35:11 -0400
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-23 20:48:19 -0700
commit7c974bb470602a828054b6cc3c024f0a11de0fa4 (patch)
treec6b704dad318e31079188a955ad992ac4741b223
parent94d0fa9c7cea0e4b2af18745823347d596a8603d (diff)
Perf: arm64: make debug dir handle exportable
The perf debug directory is exported so that other drivers can place nodes there. Change-Id: I570f4b61267ce4ef20275852ec769464b7f68827 Signed-off-by: Neil Leeder <nleeder@codeaurora.org> [satyap: trivial merge conflict resolution and move changes in arch/arm64/kernel/perf_event.c to drivers/perf/arm_pmu.c to align with kernel 4.4] Signed-off-by: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>
-rw-r--r--arch/arm64/kernel/perf_debug.c1
-rw-r--r--drivers/perf/arm_pmu.c15
2 files changed, 12 insertions, 4 deletions
diff --git a/arch/arm64/kernel/perf_debug.c b/arch/arm64/kernel/perf_debug.c
index 3ad3e11d246b..83844516fc57 100644
--- a/arch/arm64/kernel/perf_debug.c
+++ b/arch/arm64/kernel/perf_debug.c
@@ -29,6 +29,7 @@ static char *descriptions =
" 7 Perf: arm64: Update PMU force reset\n"
"10 Perf: arm64: tracectr: initialize counts after hotplug\n"
"11 Perf: arm64: Refine disable/enable in tracecounters\n"
+ "15 Perf: arm64: make debug dir handle exportable\n"
;
static ssize_t desc_read(struct file *fp, char __user *buf,
diff --git a/drivers/perf/arm_pmu.c b/drivers/perf/arm_pmu.c
index f0ad3b8b941c..a6293cbad0ba 100644
--- a/drivers/perf/arm_pmu.c
+++ b/drivers/perf/arm_pmu.c
@@ -927,6 +927,15 @@ out_free:
return ret;
}
+static struct dentry *perf_debug_dir;
+
+struct dentry *perf_create_debug_dir(void)
+{
+ if (!perf_debug_dir)
+ perf_debug_dir = debugfs_create_dir("msm_perf", NULL);
+ return perf_debug_dir;
+}
+
#ifdef CONFIG_PERF_EVENTS_RESET_PMU_DEBUGFS
static __ref void reset_pmu_force(void)
{
@@ -972,15 +981,13 @@ int __init init_pmu_actions(void)
struct dentry *file;
unsigned int value = 1;
- dir = debugfs_create_dir("msm_perf", NULL);
+ dir = perf_create_debug_dir();
if (!dir)
return -ENOMEM;
file = debugfs_create_file("resetpmu", 0220, dir,
&value, &fops_pmuaction);
- if (!file) {
- debugfs_remove(dir);
+ if (!file)
return -ENOMEM;
- }
return 0;
}
#else