]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
of/irq: Correct element count for array @dummy_imask in API of_irq_parse_raw()
authorZijun Hu <quic_zijuhu@quicinc.com>
Mon, 9 Dec 2024 13:25:00 +0000 (21:25 +0800)
committerRob Herring (Arm) <robh@kernel.org>
Tue, 10 Dec 2024 16:50:26 +0000 (10:50 -0600)
Array @dummy_imask only needs MAX_PHANDLE_ARGS elements, but it actually
has (MAX_PHANDLE_ARGS + 1) elements. One extra element doesn't hurt
anything except for some stack usage.

Fix by using (MAX_PHANDLE_ARGS - 1) as max element index in initializer.

Signed-off-by: Zijun Hu <quic_zijuhu@quicinc.com>
Link: https://lore.kernel.org/r/20241209-of_irq_fix-v1-2-782f1419c8a1@quicinc.com
Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
drivers/of/irq.c

index 67fc0ceaa5f51c18c14f96f2bb9f82bcb66f890e..3fbaf8f8610a2c2659487456df7b87fc321ed3c3 100644 (file)
@@ -170,7 +170,7 @@ int of_irq_parse_raw(const __be32 *addr, struct of_phandle_args *out_irq)
        struct device_node *ipar, *tnode, *old = NULL;
        __be32 initial_match_array[MAX_PHANDLE_ARGS];
        const __be32 *match_array = initial_match_array;
-       const __be32 *tmp, dummy_imask[] = { [0 ... MAX_PHANDLE_ARGS] = cpu_to_be32(~0) };
+       const __be32 *tmp, dummy_imask[] = { [0 ... (MAX_PHANDLE_ARGS - 1)] = cpu_to_be32(~0) };
        u32 intsize = 1, addrsize;
        int i, rc = -EINVAL;