summaryrefslogtreecommitdiff
path: root/drivers/perf/arm_pmu.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/perf/arm_pmu.c')
-rw-r--r--drivers/perf/arm_pmu.c15
1 files changed, 11 insertions, 4 deletions
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