Merge changes I0e7650c0,I33acead9 into integration

* changes:
  fix(xilinx): follow MISRA-C standards for condition check
  fix(zynqmp): resolve null pointer dereferencing
This commit is contained in:
Joanna Farley 2024-05-09 09:18:21 +02:00 committed by TrustedFirmware Code Review
commit f1464ceaf9
4 changed files with 19 additions and 14 deletions

View file

@ -36,7 +36,7 @@ static int32_t versal_pwr_domain_on(u_register_t mpidr)
} }
proc = pm_get_proc((uint32_t)cpu_id); proc = pm_get_proc((uint32_t)cpu_id);
if (!proc) { if (proc == NULL) {
return PSCI_E_INTERN_FAIL; return PSCI_E_INTERN_FAIL;
} }
@ -62,7 +62,7 @@ static void versal_pwr_domain_suspend(const psci_power_state_t *target_state)
uint32_t cpu_id = plat_my_core_pos(); uint32_t cpu_id = plat_my_core_pos();
const struct pm_proc *proc = pm_get_proc(cpu_id); const struct pm_proc *proc = pm_get_proc(cpu_id);
if (!proc) { if (proc == NULL) {
return; return;
} }
@ -103,7 +103,7 @@ static void versal_pwr_domain_suspend_finish(
uint32_t cpu_id = plat_my_core_pos(); uint32_t cpu_id = plat_my_core_pos();
const struct pm_proc *proc = pm_get_proc(cpu_id); const struct pm_proc *proc = pm_get_proc(cpu_id);
if (!proc) { if (proc == NULL) {
return; return;
} }
@ -201,7 +201,7 @@ static void versal_pwr_domain_off(const psci_power_state_t *target_state)
uint32_t cpu_id = plat_my_core_pos(); uint32_t cpu_id = plat_my_core_pos();
const struct pm_proc *proc = pm_get_proc(cpu_id); const struct pm_proc *proc = pm_get_proc(cpu_id);
if (!proc) { if (proc == NULL) {
return; return;
} }

View file

@ -1,6 +1,6 @@
/* /*
* Copyright (c) 2022, Xilinx, Inc. All rights reserved. * Copyright (c) 2022, Xilinx, Inc. All rights reserved.
* Copyright (c) 2022-2023, Advanced Micro Devices, Inc. All rights reserved. * Copyright (c) 2022-2024, Advanced Micro Devices, Inc. All rights reserved.
* *
* SPDX-License-Identifier: BSD-3-Clause * SPDX-License-Identifier: BSD-3-Clause
*/ */
@ -38,7 +38,7 @@ static int32_t versal_net_pwr_domain_on(u_register_t mpidr)
} }
proc = pm_get_proc(cpu_id); proc = pm_get_proc(cpu_id);
if (!proc) { if (proc == NULL) {
return PSCI_E_INTERN_FAIL; return PSCI_E_INTERN_FAIL;
} }
@ -63,7 +63,7 @@ static void versal_net_pwr_domain_off(const psci_power_state_t *target_state)
uint32_t cpu_id = plat_my_core_pos(); uint32_t cpu_id = plat_my_core_pos();
const struct pm_proc *proc = pm_get_proc(cpu_id); const struct pm_proc *proc = pm_get_proc(cpu_id);
if (!proc) { if (proc == NULL) {
return; return;
} }
@ -147,7 +147,7 @@ static void versal_net_pwr_domain_suspend(const psci_power_state_t *target_state
uint32_t cpu_id = plat_my_core_pos(); uint32_t cpu_id = plat_my_core_pos();
const struct pm_proc *proc = pm_get_proc(cpu_id); const struct pm_proc *proc = pm_get_proc(cpu_id);
if (!proc) { if (proc == NULL) {
return; return;
} }
@ -194,7 +194,7 @@ static void versal_net_pwr_domain_suspend_finish(const psci_power_state_t *targe
uint32_t cpu_id = plat_my_core_pos(); uint32_t cpu_id = plat_my_core_pos();
const struct pm_proc *proc = pm_get_proc(cpu_id); const struct pm_proc *proc = pm_get_proc(cpu_id);
if (!proc) { if (proc == NULL) {
return; return;
} }

View file

@ -44,7 +44,7 @@ static int32_t zynqmp_pwr_domain_on(u_register_t mpidr)
} }
proc = pm_get_proc(cpu_id); proc = pm_get_proc(cpu_id);
if (!proc) { if (proc == NULL) {
return PSCI_E_INTERN_FAIL; return PSCI_E_INTERN_FAIL;
} }
@ -68,7 +68,7 @@ static void zynqmp_pwr_domain_off(const psci_power_state_t *target_state)
uint32_t cpu_id = plat_my_core_pos(); uint32_t cpu_id = plat_my_core_pos();
const struct pm_proc *proc = pm_get_proc(cpu_id); const struct pm_proc *proc = pm_get_proc(cpu_id);
if (!proc) { if (proc == NULL) {
return; return;
} }
@ -97,7 +97,7 @@ static void zynqmp_pwr_domain_suspend(const psci_power_state_t *target_state)
uint32_t cpu_id = plat_my_core_pos(); uint32_t cpu_id = plat_my_core_pos();
const struct pm_proc *proc = pm_get_proc(cpu_id); const struct pm_proc *proc = pm_get_proc(cpu_id);
if (!proc) { if (proc == NULL) {
return; return;
} }
@ -133,7 +133,7 @@ static void zynqmp_pwr_domain_suspend_finish(const psci_power_state_t *target_st
uint32_t cpu_id = plat_my_core_pos(); uint32_t cpu_id = plat_my_core_pos();
const struct pm_proc *proc = pm_get_proc(cpu_id); const struct pm_proc *proc = pm_get_proc(cpu_id);
if (!proc) { if (proc == NULL) {
return; return;
} }

View file

@ -1,6 +1,6 @@
/* /*
* Copyright (c) 2013-2022, Arm Limited and Contributors. All rights reserved. * Copyright (c) 2013-2022, Arm Limited and Contributors. All rights reserved.
* Copyright (c) 2022-2023, Advanced Micro Devices, Inc. All rights reserved. * Copyright (c) 2022-2024, Advanced Micro Devices, Inc. All rights reserved.
* *
* SPDX-License-Identifier: BSD-3-Clause * SPDX-License-Identifier: BSD-3-Clause
*/ */
@ -272,6 +272,11 @@ enum pm_ret_status pm_self_suspend(enum pm_node_id nid,
uint32_t cpuid = plat_my_core_pos(); uint32_t cpuid = plat_my_core_pos();
const struct pm_proc *proc = pm_get_proc(cpuid); const struct pm_proc *proc = pm_get_proc(cpuid);
if (proc == NULL) {
WARN("Failed to get proc %d\n", cpuid);
return PM_RET_ERROR_INTERNAL;
}
/* /*
* Do client specific suspend operations * Do client specific suspend operations
* (e.g. set powerdown request bit) * (e.g. set powerdown request bit)