From bef0192a2ee1e1e98199bef4e461d87f022f997a Mon Sep 17 00:00:00 2001 From: Manish Pandey Date: Mon, 27 Jul 2020 13:00:38 +0100 Subject: [PATCH] fconf: spm: minor bug fix This patch fixes a bug where wrong panic was caused when the number of SP was same as max limit. Signed-off-by: Manish Pandey Change-Id: I9ace62d8d5bcdc410eeacdd9d33d55a7be5fcc8e --- plat/arm/common/fconf/arm_fconf_sp.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/plat/arm/common/fconf/arm_fconf_sp.c b/plat/arm/common/fconf/arm_fconf_sp.c index 64e873e7a..3522dcf9d 100644 --- a/plat/arm/common/fconf/arm_fconf_sp.c +++ b/plat/arm/common/fconf/arm_fconf_sp.c @@ -45,6 +45,11 @@ int fconf_populate_arm_sp(uintptr_t config) } 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 @@ int fconf_populate_arm_sp(uintptr_t config) 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; }