diff options
| author | Dan Carpenter <dan.carpenter@linaro.org> | 2025-12-09 09:54:16 +0300 |
|---|---|---|
| committer | Thomas Gleixner <tglx@linutronix.de> | 2025-12-10 12:11:06 +0900 |
| commit | 7dbc0d40d8347bd9de55c904f59ea44bcc8dedb7 (patch) | |
| tree | dd6308f2fa01c40508705c606d90b71c33619376 | |
| parent | 55026a9670ce8b7b3d74f7d570de1382cbfb395d (diff) | |
| download | tip-irq/urgent.tar.gz | |
irqchip/mchp-eic: Fix error code in mchp_eic_domain_alloc()irq/urgent
If irq_domain_translate_twocell() sets "hwirq" to >= MCHP_EIC_NIRQ (2) then
it results in an out of bounds access.
The code checks for invalid values, but doesn't set the error code. Return
-EINVAL in that case, instead of returning success.
Fixes: 00fa3461c86d ("irqchip/mchp-eic: Add support for the Microchip EIC")
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Claudiu Beznea <claudiu.beznea@tuxon.dev>
Link: https://patch.msgid.link/aTfHmOz6IBpTIPU5@stanley.mountain
| -rw-r--r-- | drivers/irqchip/irq-mchp-eic.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/irqchip/irq-mchp-eic.c b/drivers/irqchip/irq-mchp-eic.c index 2474fa467a059e..31093a8ab67c3a 100644 --- a/drivers/irqchip/irq-mchp-eic.c +++ b/drivers/irqchip/irq-mchp-eic.c @@ -170,7 +170,7 @@ static int mchp_eic_domain_alloc(struct irq_domain *domain, unsigned int virq, ret = irq_domain_translate_twocell(domain, fwspec, &hwirq, &type); if (ret || hwirq >= MCHP_EIC_NIRQ) - return ret; + return ret ?: -EINVAL; switch (type) { case IRQ_TYPE_EDGE_RISING: |
