Merge tag 'arc-5.10-rc1-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc
Pull ARC fix from Vineet Gupta: "I found a snafu in perf driver which made it into 5.9-rc4 and the fix should go in now than wait" * tag 'arc-5.10-rc1-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc: ARC: perf: redo the pct irq missing in device-tree handling
This commit is contained in:
@@ -562,7 +562,7 @@ static int arc_pmu_device_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct arc_reg_pct_build pct_bcr;
|
||||
struct arc_reg_cc_build cc_bcr;
|
||||
int i, has_interrupts, irq;
|
||||
int i, has_interrupts, irq = -1;
|
||||
int counter_size; /* in bits */
|
||||
|
||||
union cc_name {
|
||||
@@ -637,19 +637,28 @@ static int arc_pmu_device_probe(struct platform_device *pdev)
|
||||
.attr_groups = arc_pmu->attr_groups,
|
||||
};
|
||||
|
||||
if (has_interrupts && (irq = platform_get_irq(pdev, 0) >= 0)) {
|
||||
if (has_interrupts) {
|
||||
irq = platform_get_irq(pdev, 0);
|
||||
if (irq >= 0) {
|
||||
int ret;
|
||||
|
||||
arc_pmu->irq = irq;
|
||||
arc_pmu->irq = irq;
|
||||
|
||||
/* intc map function ensures irq_set_percpu_devid() called */
|
||||
request_percpu_irq(irq, arc_pmu_intr, "ARC perf counters",
|
||||
this_cpu_ptr(&arc_pmu_cpu));
|
||||
/* intc map function ensures irq_set_percpu_devid() called */
|
||||
ret = request_percpu_irq(irq, arc_pmu_intr, "ARC perf counters",
|
||||
this_cpu_ptr(&arc_pmu_cpu));
|
||||
|
||||
if (!ret)
|
||||
on_each_cpu(arc_cpu_pmu_irq_init, &irq, 1);
|
||||
else
|
||||
irq = -1;
|
||||
}
|
||||
|
||||
on_each_cpu(arc_cpu_pmu_irq_init, &irq, 1);
|
||||
} else {
|
||||
arc_pmu->pmu.capabilities |= PERF_PMU_CAP_NO_INTERRUPT;
|
||||
}
|
||||
|
||||
if (irq == -1)
|
||||
arc_pmu->pmu.capabilities |= PERF_PMU_CAP_NO_INTERRUPT;
|
||||
|
||||
/*
|
||||
* perf parser doesn't really like '-' symbol in events name, so let's
|
||||
* use '_' in arc pct name as it goes to kernel PMU event prefix.
|
||||
|
Reference in New Issue
Block a user