aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/drivers/perf/arm_smmuv3_pmu.c
diff options
context:
space:
mode:
authorRob Herring <robh@kernel.org>2020-06-12 09:57:00 -0600
committerRob Herring <robh@kernel.org>2020-06-12 09:57:00 -0600
commit8440d4a75d90556cfb8fb3e244443f67381aafd6 (patch)
tree2e1c986942c3beb6257121e52449f827a8ce4eaf /drivers/perf/arm_smmuv3_pmu.c
parentscripts/dtc: use pkg-config to include <yaml.h> in non-standard path (diff)
parentdt-bindings: Remove redundant 'maxItems' (diff)
downloadwireguard-linux-8440d4a75d90556cfb8fb3e244443f67381aafd6.tar.xz
wireguard-linux-8440d4a75d90556cfb8fb3e244443f67381aafd6.zip
Merge branch 'dt/schema-cleanups' into dt/linus
Diffstat (limited to 'drivers/perf/arm_smmuv3_pmu.c')
-rw-r--r--drivers/perf/arm_smmuv3_pmu.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/perf/arm_smmuv3_pmu.c b/drivers/perf/arm_smmuv3_pmu.c
index f01a57e5a5f3..48e28ef93a70 100644
--- a/drivers/perf/arm_smmuv3_pmu.c
+++ b/drivers/perf/arm_smmuv3_pmu.c
@@ -814,7 +814,7 @@ static int smmu_pmu_probe(struct platform_device *pdev)
if (err) {
dev_err(dev, "Error %d registering hotplug, PMU @%pa\n",
err, &res_0->start);
- return err;
+ goto out_clear_affinity;
}
err = perf_pmu_register(&smmu_pmu->pmu, name, -1);
@@ -833,6 +833,8 @@ static int smmu_pmu_probe(struct platform_device *pdev)
out_unregister:
cpuhp_state_remove_instance_nocalls(cpuhp_state_num, &smmu_pmu->node);
+out_clear_affinity:
+ irq_set_affinity_hint(smmu_pmu->irq, NULL);
return err;
}
@@ -842,6 +844,7 @@ static int smmu_pmu_remove(struct platform_device *pdev)
perf_pmu_unregister(&smmu_pmu->pmu);
cpuhp_state_remove_instance_nocalls(cpuhp_state_num, &smmu_pmu->node);
+ irq_set_affinity_hint(smmu_pmu->irq, NULL);
return 0;
}