diff options
Diffstat (limited to 'meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-arm64-ack-5.10/tc/0017-perf-arm-cmn-Use-irq_set_affinity.patch')
-rw-r--r-- | meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-arm64-ack-5.10/tc/0017-perf-arm-cmn-Use-irq_set_affinity.patch | 74 |
1 files changed, 0 insertions, 74 deletions
diff --git a/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-arm64-ack-5.10/tc/0017-perf-arm-cmn-Use-irq_set_affinity.patch b/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-arm64-ack-5.10/tc/0017-perf-arm-cmn-Use-irq_set_affinity.patch deleted file mode 100644 index e8674c33ea..0000000000 --- a/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-arm64-ack-5.10/tc/0017-perf-arm-cmn-Use-irq_set_affinity.patch +++ /dev/null @@ -1,74 +0,0 @@ -From ad3c5d9224ffcd7b2e083f03441c6188d2bbef67 Mon Sep 17 00:00:00 2001 -From: Thomas Gleixner <tglx@linutronix.de> -Date: Tue, 18 May 2021 11:17:28 +0200 -Subject: [PATCH 01/14] perf/arm-cmn: Use irq_set_affinity() - -The driver uses irq_set_affinity_hint() to set the affinity for the PMU -interrupts, which relies on the undocumented side effect that this function -actually sets the affinity under the hood. - -Setting an hint is clearly not a guarantee and for these PMU interrupts an -affinity hint, which is supposed to guide userspace for setting affinity, -is beyond pointless, because the affinity of these interrupts cannot be -modified from user space. - -Aside of that the error checks are bogus because the only error which is -returned from irq_set_affinity_hint() is when there is no irq descriptor -for the interrupt number, but not when the affinity set fails. That's on -purpose because the hint can point to an offline CPU. - -Replace the mindless abuse with irq_set_affinity(). - -Signed-off-by: Thomas Gleixner <tglx@linutronix.de> - -Link: https://lore.kernel.org/r/20210518093118.277228577@linutronix.de -Signed-off-by: Will Deacon <will@kernel.org> - -Upstream-Status: Backport [https://lore.kernel.org/r/20210518093118.277228577@linutronix.de] -Signed-off-by: Rupinderjit Singh <rupinderjit.singh@arm.com> ---- - drivers/perf/arm-cmn.c | 9 ++------- - 1 file changed, 2 insertions(+), 7 deletions(-) - -diff --git a/drivers/perf/arm-cmn.c b/drivers/perf/arm-cmn.c -index 46defb1dcf86..38fa6f89d0bc 100644 ---- a/drivers/perf/arm-cmn.c -+++ b/drivers/perf/arm-cmn.c -@@ -1162,7 +1162,7 @@ static int arm_cmn_pmu_offline_cpu(unsigned int cpu, struct hlist_node *node) - - perf_pmu_migrate_context(&cmn->pmu, cpu, target); - for (i = 0; i < cmn->num_dtcs; i++) -- irq_set_affinity_hint(cmn->dtc[i].irq, cpumask_of(target)); -+ irq_set_affinity(cmn->dtc[i].irq, cpumask_of(target)); - cmn->cpu = target; - return 0; - } -@@ -1222,7 +1222,7 @@ static int arm_cmn_init_irqs(struct arm_cmn *cmn) - if (err) - return err; - -- err = irq_set_affinity_hint(irq, cpumask_of(cmn->cpu)); -+ err = irq_set_affinity(irq, cpumask_of(cmn->cpu)); - if (err) - return err; - next: -@@ -1568,16 +1568,11 @@ static int arm_cmn_probe(struct platform_device *pdev) - static int arm_cmn_remove(struct platform_device *pdev) - { - struct arm_cmn *cmn = platform_get_drvdata(pdev); -- int i; - - writel_relaxed(0, cmn->dtc[0].base + CMN_DT_DTC_CTL); - - perf_pmu_unregister(&cmn->pmu); - cpuhp_state_remove_instance(arm_cmn_hp_state, &cmn->cpuhp_node); -- -- for (i = 0; i < cmn->num_dtcs; i++) -- irq_set_affinity_hint(cmn->dtc[i].irq, NULL); -- - return 0; - } - --- -2.25.1 - |