mirror of
https://github.com/linux-msm/laptops-kernel.git
synced 2026-08-13 14:19:53 -07:00
irqchip/gic-v3: Print a warning for out-of-range interrupt numbers
gic_irq_domain_translate() does not check if an interrupt number lies within the valid range of the specified interrupt type. Add these checks, and print a warning if the interrupt number is out of range. This can help flagging incorrectly described Extended SPI and PPI interrupts in DT. Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> Signed-off-by: Thomas Gleixner <tglx@kernel.org> Acked-by: Marc Zyngier <maz@kernel.org> Link: https://patch.msgid.link/ce695ea46decc816974179314a86f2b9b5cad6a9.1772799134.git.geert+renesas@glider.be
This commit is contained in:
committed by
Thomas Gleixner
parent
e0fcae27ff
commit
42972b5464
@@ -1603,15 +1603,23 @@ static int gic_irq_domain_translate(struct irq_domain *d,
|
||||
|
||||
switch (fwspec->param[0]) {
|
||||
case 0: /* SPI */
|
||||
if (fwspec->param[1] > 987)
|
||||
pr_warn_once("SPI %u out of range (use ESPI?)\n", fwspec->param[1]);
|
||||
*hwirq = fwspec->param[1] + 32;
|
||||
break;
|
||||
case 1: /* PPI */
|
||||
if (fwspec->param[1] > 15)
|
||||
pr_warn_once("PPI %u out of range (use EPPI?)\n", fwspec->param[1]);
|
||||
*hwirq = fwspec->param[1] + 16;
|
||||
break;
|
||||
case 2: /* ESPI */
|
||||
if (fwspec->param[1] > 1023)
|
||||
pr_warn_once("ESPI %u out of range\n", fwspec->param[1]);
|
||||
*hwirq = fwspec->param[1] + ESPI_BASE_INTID;
|
||||
break;
|
||||
case 3: /* EPPI */
|
||||
if (fwspec->param[1] > 63)
|
||||
pr_warn_once("EPPI %u out of range\n", fwspec->param[1]);
|
||||
*hwirq = fwspec->param[1] + EPPI_BASE_INTID;
|
||||
break;
|
||||
case GIC_IRQ_TYPE_LPI: /* LPI */
|
||||
|
||||
Reference in New Issue
Block a user