From: Heinrich Schuchardt Date: Mon, 28 Nov 2022 09:14:18 +0000 (+0100) Subject: lib: fix fdt_parse_plicsw_node() X-Git-Tag: v1.2~32 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5daa0ef0875561e7a9152b5e75e147a3ce8afca7;p=platform%2Fkernel%2Fopensbi.git lib: fix fdt_parse_plicsw_node() cpu_offset and cpu_intc_offset must be int to detect failed invocations of fdt_node_offset_by_phandle() or fdt_parent_offset(). After determining cpu_offset we have to check this value and not cpu_intc_offset. Signed-off-by: Heinrich Schuchardt Reviewed-by: Xiang W Reviewed-by: Yu Chien Peter Lin Reviewed-by: Bin Meng --- diff --git a/lib/utils/fdt/fdt_helper.c b/lib/utils/fdt/fdt_helper.c index 976c96e..674f17b 100644 --- a/lib/utils/fdt/fdt_helper.c +++ b/lib/utils/fdt/fdt_helper.c @@ -861,7 +861,7 @@ int fdt_parse_plicsw_node(void *fdt, int nodeoffset, unsigned long *plicsw_base, { const fdt32_t *val; int rc, i, count; - uint64_t reg_addr, reg_size, cpu_offset, cpu_intc_offset; + uint64_t reg_addr, reg_size; u32 phandle, hwirq, hartid, hcount; if (nodeoffset < 0 || !fdt || !plicsw_base || @@ -882,6 +882,8 @@ int fdt_parse_plicsw_node(void *fdt, int nodeoffset, unsigned long *plicsw_base, hcount = 0; for (i = 0; i < (count / 2); i++) { + int cpu_offset, cpu_intc_offset; + phandle = fdt32_to_cpu(val[2 * i]); hwirq = fdt32_to_cpu(val[2 * i + 1]); @@ -890,7 +892,7 @@ int fdt_parse_plicsw_node(void *fdt, int nodeoffset, unsigned long *plicsw_base, continue; cpu_offset = fdt_parent_offset(fdt, cpu_intc_offset); - if (cpu_intc_offset < 0) + if (cpu_offset < 0) continue; rc = fdt_parse_hart_id(fdt, cpu_offset, &hartid);