summaryrefslogtreecommitdiffstats
path: root/drivers/perf/arm_smmuv3_pmu.c
diff options
context:
space:
mode:
authorQi Liu <liuqi115@huawei.com>2020-07-17 10:49:23 +0200
committerWill Deacon <will@kernel.org>2020-07-17 11:51:44 +0200
commitf32ed8eb0e3f0d0ef4ddb854554d60ca5863a9f9 (patch)
tree455b30ad8a4efffe84e472e9036fcd319eab0f82 /drivers/perf/arm_smmuv3_pmu.c
parentasm-generic/mmiowb: Allow mmiowb_set_pending() when preemptible() (diff)
downloadlinux-f32ed8eb0e3f0d0ef4ddb854554d60ca5863a9f9.tar.xz
linux-f32ed8eb0e3f0d0ef4ddb854554d60ca5863a9f9.zip
drivers/perf: Prevent forced unbinding of PMU drivers
Forcefully unbinding PMU drivers during perf sampling will lead to a kernel panic, because the perf upper-layer framework call a NULL pointer in this situation. To solve this issue, "suppress_bind_attrs" should be set to true, so that bind/unbind can be disabled via sysfs and prevent unbinding PMU drivers during perf sampling. Signed-off-by: Qi Liu <liuqi115@huawei.com> Reviewed-by: John Garry <john.garry@huawei.com> Link: https://lore.kernel.org/r/1594975763-32966-1-git-send-email-liuqi115@huawei.com Signed-off-by: Will Deacon <will@kernel.org>
Diffstat (limited to 'drivers/perf/arm_smmuv3_pmu.c')
-rw-r--r--drivers/perf/arm_smmuv3_pmu.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/perf/arm_smmuv3_pmu.c b/drivers/perf/arm_smmuv3_pmu.c
index 90caba56dfbc..4cdb35d166ac 100644
--- a/drivers/perf/arm_smmuv3_pmu.c
+++ b/drivers/perf/arm_smmuv3_pmu.c
@@ -860,6 +860,7 @@ static void smmu_pmu_shutdown(struct platform_device *pdev)
static struct platform_driver smmu_pmu_driver = {
.driver = {
.name = "arm-smmu-v3-pmcg",
+ .suppress_bind_attrs = true,
},
.probe = smmu_pmu_probe,
.remove = smmu_pmu_remove,