Merge pull request #604 from sandrine-bailleux-arm/sb/validate-psci_cpu_on_start-args

Validate psci_cpu_on_start() arguments
This commit is contained in:
danh-arm 2016-04-25 14:52:14 +01:00
commit cf4ee1779a
3 changed files with 7 additions and 10 deletions

View File

@ -47,7 +47,6 @@ int psci_cpu_on(u_register_t target_cpu,
{ {
int rc; int rc;
unsigned int end_pwrlvl;
entry_point_info_t ep; entry_point_info_t ep;
/* Determine if the cpu exists of not */ /* Determine if the cpu exists of not */
@ -64,11 +63,7 @@ int psci_cpu_on(u_register_t target_cpu,
* To turn this cpu on, specify which power * To turn this cpu on, specify which power
* levels need to be turned on * levels need to be turned on
*/ */
end_pwrlvl = PLAT_MAX_PWR_LVL; return psci_cpu_on_start(target_cpu, &ep);
rc = psci_cpu_on_start(target_cpu,
&ep,
end_pwrlvl);
return rc;
} }
unsigned int psci_version(void) unsigned int psci_version(void)

View File

@ -67,13 +67,16 @@ static int cpu_on_validate_state(aff_info_state_t aff_state)
* platform handler as it can return error. * platform handler as it can return error.
******************************************************************************/ ******************************************************************************/
int psci_cpu_on_start(u_register_t target_cpu, int psci_cpu_on_start(u_register_t target_cpu,
entry_point_info_t *ep, entry_point_info_t *ep)
unsigned int end_pwrlvl)
{ {
int rc; int rc;
unsigned int target_idx = plat_core_pos_by_mpidr(target_cpu); unsigned int target_idx = plat_core_pos_by_mpidr(target_cpu);
aff_info_state_t target_aff_state; aff_info_state_t target_aff_state;
/* Calling function must supply valid input arguments */
assert((int) target_idx >= 0);
assert(ep != NULL);
/* /*
* This function must only be called on platforms where the * This function must only be called on platforms where the
* CPU_ON platform hooks have been implemented. * CPU_ON platform hooks have been implemented.

View File

@ -203,8 +203,7 @@ int psci_spd_migrate_info(u_register_t *mpidr);
/* Private exported functions from psci_on.c */ /* Private exported functions from psci_on.c */
int psci_cpu_on_start(unsigned long target_cpu, int psci_cpu_on_start(unsigned long target_cpu,
entry_point_info_t *ep, entry_point_info_t *ep);
unsigned int end_pwrlvl);
void psci_cpu_on_finish(unsigned int cpu_idx, void psci_cpu_on_finish(unsigned int cpu_idx,
psci_power_state_t *state_info); psci_power_state_t *state_info);