[PATCH 3/5] arm_pmu: acpi: check for mismatched PPIs
Will Deacon
will.deacon at arm.com
Mon Dec 11 09:37:07 PST 2017
On Wed, Nov 01, 2017 at 02:12:37PM +0000, Mark Rutland wrote:
> The arm_pmu platform code explicitly checks for mismatched PPIs at probe
> time, while the ACPI code leaves this to the core code. Future
> refactoring will make this difficult for the core code to check, so
> let's have the ACPI code check this explicitly.
>
> As before, upon a failure we'll continue on without an interrupt. Ho
> hum.
>
> Signed-off-by: Mark Rutland <mark.rutland at arm.com>
> Cc: Will Deacon <will.deacon at arm.com>
> ---
> drivers/perf/arm_pmu.c | 16 ++++------------
> drivers/perf/arm_pmu_acpi.c | 42 ++++++++++++++++++++++++++++++++++++++----
> 2 files changed, 42 insertions(+), 16 deletions(-)
>
> diff --git a/drivers/perf/arm_pmu.c b/drivers/perf/arm_pmu.c
> index 3d6d4c5f2356..e0242103d904 100644
> --- a/drivers/perf/arm_pmu.c
> +++ b/drivers/perf/arm_pmu.c
> @@ -557,18 +557,10 @@ int armpmu_request_irq(struct arm_pmu *armpmu, int cpu)
> if (!irq)
> return 0;
>
> - if (irq_is_percpu_devid(irq) && cpumask_empty(&armpmu->active_irqs)) {
> - err = request_percpu_irq(irq, handler, "arm-pmu",
> - &hw_events->percpu_pmu);
> - } else if (irq_is_percpu_devid(irq)) {
> - int other_cpu = cpumask_first(&armpmu->active_irqs);
> - int other_irq = per_cpu(hw_events->irq, other_cpu);
> -
> - if (irq != other_irq) {
> - pr_warn("mismatched PPIs detected.\n");
> - err = -EINVAL;
> - goto err_out;
> - }
> + if (irq_is_percpu_devid(irq)) {
> + if (cpumask_empty(&armpmu->active_irqs))
Why not leave this as before, with a '&&' operator?
Will
More information about the linux-arm-kernel
mailing list