mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-05-08 18:41:22 +00:00
Unify type of "cpu_idx" across PSCI module.
NOTE for platform integrators: API `plat_psci_stat_get_residency()` third argument `last_cpu_idx` is changed from "signed int" to the "unsigned int" type. Issue / Trouble points 1. cpu_idx is used as mix of `unsigned int` and `signed int` in code with typecasting at some places leading to coverity issues. 2. Underlying platform API's return cpu_idx as `unsigned int` and comparison is performed with platform specific defines `PLAFORM_xxx` which is not consistent Misra Rule 10.4: The value of a complex expression of integer type may only be cast to a type that is narrower and of the same signedness as the underlying type of the expression. Based on above points, cpu_idx is kept as `unsigned int` to match the API's and low-level functions and platform defines are updated where ever required Signed-off-by: Deepika Bhavnani <deepika.bhavnani@arm.com> Change-Id: Ib26fd16e420c35527204b126b9b91e8babcc3a5c
This commit is contained in:
parent
22d12c4148
commit
5b33ad174a
25 changed files with 99 additions and 90 deletions
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2013-2018, ARM Limited and Contributors. All rights reserved.
|
||||
* Copyright (c) 2013-2019, ARM Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
@ -219,16 +219,19 @@ int psci_cpu_off(void)
|
|||
int psci_affinity_info(u_register_t target_affinity,
|
||||
unsigned int lowest_affinity_level)
|
||||
{
|
||||
int target_idx;
|
||||
int ret;
|
||||
unsigned int target_idx;
|
||||
|
||||
/* We dont support level higher than PSCI_CPU_PWR_LVL */
|
||||
if (lowest_affinity_level > PSCI_CPU_PWR_LVL)
|
||||
return PSCI_E_INVALID_PARAMS;
|
||||
|
||||
/* Calculate the cpu index of the target */
|
||||
target_idx = plat_core_pos_by_mpidr(target_affinity);
|
||||
if (target_idx == -1)
|
||||
ret = plat_core_pos_by_mpidr(target_affinity);
|
||||
if (ret == -1) {
|
||||
return PSCI_E_INVALID_PARAMS;
|
||||
}
|
||||
target_idx = (unsigned int)ret;
|
||||
|
||||
/*
|
||||
* Generic management:
|
||||
|
@ -245,7 +248,7 @@ int psci_affinity_info(u_register_t target_affinity,
|
|||
* target CPUs shutdown was not seen by the current CPU's cluster. And
|
||||
* so the cache may contain stale data for the target CPU.
|
||||
*/
|
||||
flush_cpu_data_by_index((unsigned int)target_idx,
|
||||
flush_cpu_data_by_index(target_idx,
|
||||
psci_svc_cpu_data.aff_info_state);
|
||||
|
||||
return psci_get_aff_info_state_by_idx(target_idx);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue