diff --git a/lib/psci/psci_common.c b/lib/psci/psci_common.c index 9f0b19089..375cdbab5 100644 --- a/lib/psci/psci_common.c +++ b/lib/psci/psci_common.c @@ -182,9 +182,9 @@ static bool psci_is_last_cpu_to_idle_at_pwrlvl(unsigned int end_pwrlvl) } my_idx = plat_my_core_pos(); - - for (lvl = PSCI_CPU_PWR_LVL; lvl <= end_pwrlvl; lvl++) { - parent_idx = psci_cpu_pd_nodes[my_idx].parent_node; + parent_idx = psci_cpu_pd_nodes[my_idx].parent_node; + for (lvl = PSCI_CPU_PWR_LVL + U(1); lvl < end_pwrlvl; lvl++) { + parent_idx = psci_non_cpu_pd_nodes[parent_idx].parent_node; } cpu_start_idx = psci_non_cpu_pd_nodes[parent_idx].cpu_start_idx;