diff --git a/plat/arm/common/fconf/arm_fconf_sp.c b/plat/arm/common/fconf/arm_fconf_sp.c index 64e873e..3522dcf 100644 --- a/plat/arm/common/fconf/arm_fconf_sp.c +++ b/plat/arm/common/fconf/arm_fconf_sp.c @@ -45,6 +45,11 @@ } fdt_for_each_subnode(sp_node, dtb, node) { + if (index == MAX_SP_IDS) { + ERROR("FCONF: Reached max number of SPs\n"); + return -1; + } + err = fdt_read_uint32_array(dtb, sp_node, "uuid", 4, uuid_helper.word); if (err < 0) { @@ -87,15 +92,10 @@ policies[sp_start_index + index].check = open_fip; index++; - - if (index >= MAX_SP_IDS) { - ERROR("FCONF: reached max number of SPs\n"); - return -1; - } } if ((sp_node < 0) && (sp_node != -FDT_ERR_NOTFOUND)) { - ERROR("%d: fdt_for_each_subnode(): %d\n", __LINE__, node); + ERROR("%u: fdt_for_each_subnode(): %d\n", __LINE__, node); return sp_node; }