diff options
Diffstat (limited to 'drivers/perf')
| -rw-r--r-- | drivers/perf/arm_pmu.c | 8 | ||||
| -rw-r--r-- | drivers/perf/arm_pmu_platform.c | 6 | 
2 files changed, 10 insertions, 4 deletions
| diff --git a/drivers/perf/arm_pmu.c b/drivers/perf/arm_pmu.c index 7f01f6f60b87..d0b7dd8fb184 100644 --- a/drivers/perf/arm_pmu.c +++ b/drivers/perf/arm_pmu.c @@ -485,7 +485,13 @@ static int armpmu_filter_match(struct perf_event *event)  {  	struct arm_pmu *armpmu = to_arm_pmu(event->pmu);  	unsigned int cpu = smp_processor_id(); -	return cpumask_test_cpu(cpu, &armpmu->supported_cpus); +	int ret; + +	ret = cpumask_test_cpu(cpu, &armpmu->supported_cpus); +	if (ret && armpmu->filter_match) +		return armpmu->filter_match(event); + +	return ret;  }  static ssize_t armpmu_cpumask_show(struct device *dev, diff --git a/drivers/perf/arm_pmu_platform.c b/drivers/perf/arm_pmu_platform.c index 96075cecb0ae..933bd8410fc2 100644 --- a/drivers/perf/arm_pmu_platform.c +++ b/drivers/perf/arm_pmu_platform.c @@ -77,14 +77,14 @@ static int pmu_parse_irq_affinity(struct device_node *node, int i)  	dn = of_parse_phandle(node, "interrupt-affinity", i);  	if (!dn) { -		pr_warn("failed to parse interrupt-affinity[%d] for %s\n", -			i, node->name); +		pr_warn("failed to parse interrupt-affinity[%d] for %pOFn\n", +			i, node);  		return -EINVAL;  	}  	cpu = of_cpu_node_to_id(dn);  	if (cpu < 0) { -		pr_warn("failed to find logical CPU for %s\n", dn->name); +		pr_warn("failed to find logical CPU for %pOFn\n", dn);  		cpu = nr_cpu_ids;  	} |