From 83e292b9ce0db18acf42b04b3068d93f7fd93359 Mon Sep 17 00:00:00 2001 From: Mahmoud Elsabbagh Date: Wed, 9 Apr 2025 14:18:02 +0100 Subject: [PATCH] cmn_cyprus: Fix bad bit shift error Fix bad bit shift error, ensure that the bit shifting happens in 64-bit by casting to uint64_t before shifting, so there is no chance for sign-extension being done implicitly. Signed-off-by: Mahmoud Elsabbagh --- module/cmn_cyprus/src/cmn_cyprus_rnsam_reg.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/module/cmn_cyprus/src/cmn_cyprus_rnsam_reg.c b/module/cmn_cyprus/src/cmn_cyprus_rnsam_reg.c index 693e91ca6..c60e9f07e 100644 --- a/module/cmn_cyprus/src/cmn_cyprus_rnsam_reg.c +++ b/module/cmn_cyprus/src/cmn_cyprus_rnsam_reg.c @@ -1,6 +1,6 @@ /* * Arm SCP/MCP Software - * Copyright (c) 2023-2024, Arm Limited and Contributors. All rights reserved. + * Copyright (c) 2023-2025, Arm Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause * @@ -1086,7 +1086,8 @@ int rnsam_set_cpag_port_type( (((cpag_id % CPA_CTRL_CPAG_PER_GROUP) * CPA_CTRL_NUM_CXG_PAG_WIDTH) + CPA_CTRL_PORT_TYPE_POS); - rnsam->CML_PORT_AGGR_CTRL_REG[register_idx] |= (port_type << bit_pos); + rnsam->CML_PORT_AGGR_CTRL_REG[register_idx] |= ((uint64_t)port_type + << bit_pos); return FWK_SUCCESS; } @@ -1140,7 +1141,8 @@ int rnsam_configure_cpag_base_index( rnsam->CML_CPAG_BASE_INDX_GRP[register_idx] &= ~(CPAG_BASE_INDX_MASK << bit_pos); - rnsam->CML_CPAG_BASE_INDX_GRP[register_idx] |= (cpag_base_idx << bit_pos); + rnsam->CML_CPAG_BASE_INDX_GRP[register_idx] |= ((uint64_t)cpag_base_idx + << bit_pos); return FWK_SUCCESS; } -- GitLab