diff options
| author | Heinrich Schuchardt <[email protected]> | 2022-11-28 10:14:17 +0100 |
|---|---|---|
| committer | Anup Patel <[email protected]> | 2022-12-05 10:33:42 +0530 |
| commit | e9bc7f175756064cb033097dc039888431cb0e66 (patch) | |
| tree | 67cbaf7bea0b7956ec04079635bb85e39b3246d2 | |
| parent | cc5418461910dc775249e87091b2c6a3ea8d2cd3 (diff) | |
lib: fix fdt_parse_plmt_node()
cpu_offset, cpu_intc_offset must be int to discover 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 <[email protected]>
Reviewed-by: Xiang W <[email protected]>
Reviewed-by: Yu Chien Peter Lin <[email protected]>
Reviewed-by: Bin Meng <[email protected]>
| -rw-r--r-- | lib/utils/fdt/fdt_helper.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/utils/fdt/fdt_helper.c b/lib/utils/fdt/fdt_helper.c index 87b9fb2f..976c96ed 100644 --- a/lib/utils/fdt/fdt_helper.c +++ b/lib/utils/fdt/fdt_helper.c @@ -805,7 +805,7 @@ int fdt_parse_plmt_node(void *fdt, int nodeoffset, unsigned long *plmt_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 || !plmt_base || @@ -826,6 +826,8 @@ int fdt_parse_plmt_node(void *fdt, int nodeoffset, unsigned long *plmt_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]); @@ -834,7 +836,7 @@ int fdt_parse_plmt_node(void *fdt, int nodeoffset, unsigned long *plmt_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); |
