summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authordanh-arm <dan.handley@arm.com>2016-07-26 14:34:13 +0100
committerGitHub <noreply@github.com>2016-07-26 14:34:13 +0100
commitfabd0a864a09ab6024db2cac0a4929b443a72640 (patch)
treefbddd292aacd76eef9490d8262879c382aa243fc /lib
parent3dd9835f8ab3c2e7f57ddc92505d6c800bbacd47 (diff)
parent7b6d330c92d31c82e2dce47ae1f9dccb95b8bbd7 (diff)
Merge pull request #669 from sandrine-bailleux-arm/sb/tf-hardening
Minor improvements to harden TF code
Diffstat (limited to 'lib')
-rw-r--r--lib/psci/psci_main.c4
-rw-r--r--lib/psci/psci_stat.c6
2 files changed, 8 insertions, 2 deletions
diff --git a/lib/psci/psci_main.c b/lib/psci/psci_main.c
index d412be3c..3ad3dd40 100644
--- a/lib/psci/psci_main.c
+++ b/lib/psci/psci_main.c
@@ -97,6 +97,10 @@ int psci_cpu_suspend(unsigned int power_state,
== PSCI_E_SUCCESS);
target_pwrlvl = psci_find_target_suspend_lvl(&state_info);
+ if (target_pwrlvl == PSCI_INVALID_PWR_LVL) {
+ ERROR("Invalid target power level for suspend operation\n");
+ panic();
+ }
/* Fast path for CPU standby.*/
if (is_cpu_standby_req(is_power_down_state, target_pwrlvl)) {
diff --git a/lib/psci/psci_stat.c b/lib/psci/psci_stat.c
index 155bbb07..ecbe592b 100644
--- a/lib/psci/psci_stat.c
+++ b/lib/psci/psci_stat.c
@@ -259,8 +259,10 @@ int psci_get_stat(u_register_t target_cpu, unsigned int power_state,
/* Find the highest power level */
pwrlvl = psci_find_target_suspend_lvl(&state_info);
- if (pwrlvl == PSCI_INVALID_PWR_LVL)
- return PSCI_E_INVALID_PARAMS;
+ if (pwrlvl == PSCI_INVALID_PWR_LVL) {
+ ERROR("Invalid target power level for PSCI statistics operation\n");
+ panic();
+ }
/* Get the index into the stats array */
local_state = state_info.pwr_domain_state[pwrlvl];