aboutsummaryrefslogtreecommitdiff
path: root/drivers/perf/arm_pmu_acpi.c
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>2017-06-05 09:27:05 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2017-06-05 09:27:05 +0200
commit8bc39bca5e3e8da0d62f7f4d67fdbeecab02b350 (patch)
treeac5df85133c64167381acb33086e154724148dc2 /drivers/perf/arm_pmu_acpi.c
parent094094a9373fbea80ec00714eed5c24f6fd39ecf (diff)
parent3c2993b8c6143d8a5793746a54eba8f86f95240f (diff)
Merge 4.12-rc4 into tty-next
We want the tty locking fix in here, so that maybe we can finally get it fixed for real... Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/perf/arm_pmu_acpi.c')
-rw-r--r--drivers/perf/arm_pmu_acpi.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/perf/arm_pmu_acpi.c b/drivers/perf/arm_pmu_acpi.c
index 34c862f213c7..0a9b78705ee8 100644
--- a/drivers/perf/arm_pmu_acpi.c
+++ b/drivers/perf/arm_pmu_acpi.c
@@ -29,6 +29,17 @@ static int arm_pmu_acpi_register_irq(int cpu)
return -EINVAL;
gsi = gicc->performance_interrupt;
+
+ /*
+ * Per the ACPI spec, the MADT cannot describe a PMU that doesn't
+ * have an interrupt. QEMU advertises this by using a GSI of zero,
+ * which is not known to be valid on any hardware despite being
+ * valid per the spec. Take the pragmatic approach and reject a
+ * GSI of zero for now.
+ */
+ if (!gsi)
+ return 0;
+
if (gicc->flags & ACPI_MADT_PERFORMANCE_IRQ_MODE)
trigger = ACPI_EDGE_SENSITIVE;
else