irqchip/loongson-eiointc: Fix return value checking of eiointc_index
authorBibo Mao <maobibo@loongson.cn>
Fri, 11 Aug 2023 09:58:04 +0000 (17:58 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 13 Sep 2023 07:42:29 +0000 (09:42 +0200)
[ Upstream commit 2e99b73afde18853754c5fae8e8d1a66fe5e3f64 ]

Return value of function eiointc_index is int, however it is converted
into uint32_t and then compared smaller than zero, this will cause logic
problem.

Fixes: dd281e1a1a93 ("irqchip: Add Loongson Extended I/O interrupt controller support")
Signed-off-by: Bibo Mao <maobibo@loongson.cn>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20230811095805.2974722-2-maobibo@loongson.cn
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/irqchip/irq-loongson-eiointc.c

index ac04aea..3d99b8b 100644 (file)
@@ -145,7 +145,7 @@ static int eiointc_router_init(unsigned int cpu)
        int i, bit;
        uint32_t data;
        uint32_t node = cpu_to_eio_node(cpu);
-       uint32_t index = eiointc_index(node);
+       int index = eiointc_index(node);
 
        if (index < 0) {
                pr_err("Error: invalid nodemap!\n");