[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20220803042728.3230346-1-chenhuacai@loongson.cn>
Date: Wed, 3 Aug 2022 12:27:27 +0800
From: Huacai Chen <chenhuacai@...ngson.cn>
To: Thomas Gleixner <tglx@...utronix.de>, Marc Zyngier <maz@...nel.org>
Cc: loongarch@...ts.linux.dev, linux-kernel@...r.kernel.org,
Xuefeng Li <lixuefeng@...ngson.cn>,
Huacai Chen <chenhuacai@...il.com>,
Jiaxun Yang <jiaxun.yang@...goat.com>,
Huacai Chen <chenhuacai@...ngson.cn>
Subject: [PATCH 1/2] irqchip/loongson-eiointc: Check hwirq overflow
Check hwirq overflow when allocate irq in eiointc domain.
Signed-off-by: Huacai Chen <chenhuacai@...ngson.cn>
---
drivers/irqchip/irq-loongson-eiointc.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/drivers/irqchip/irq-loongson-eiointc.c b/drivers/irqchip/irq-loongson-eiointc.c
index 80d8ca6f2d46..f8060e58ee06 100644
--- a/drivers/irqchip/irq-loongson-eiointc.c
+++ b/drivers/irqchip/irq-loongson-eiointc.c
@@ -241,8 +241,11 @@ static int eiointc_domain_alloc(struct irq_domain *domain, unsigned int virq,
struct eiointc *priv = domain->host_data;
ret = irq_domain_translate_onecell(domain, arg, &hwirq, &type);
- if (ret)
- return ret;
+ if (ret < 0)
+ return -EINVAL;
+
+ if (hwirq >= IOCSR_EXTIOI_VECTOR_NUM)
+ return -EINVAL;
for (i = 0; i < nr_irqs; i++) {
irq_domain_set_info(domain, virq + i, hwirq + i, &eiointc_irq_chip,
--
2.31.1
Powered by blists - more mailing lists