mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-22 12:34:19 +00:00
Merge changes from topic "jc/coverity-fixes" into integration
* changes: Fix Coverity #261967, Infinite loop Fix Coverity #343017, Missing unlock Fix Coverity #343008, Side affect in assertion Fix Coverity #342970, Uninitialized scalar variable
This commit is contained in:
commit
a8ab58e9b2
4 changed files with 8 additions and 51 deletions
|
@ -33,13 +33,11 @@ static void uint_div_qr(unsigned int numerator, unsigned int denominator,
|
||||||
unsigned int __aeabi_uidivmod(unsigned int numerator, unsigned int denominator);
|
unsigned int __aeabi_uidivmod(unsigned int numerator, unsigned int denominator);
|
||||||
|
|
||||||
unsigned int __aeabi_uidiv(unsigned int numerator, unsigned int denominator);
|
unsigned int __aeabi_uidiv(unsigned int numerator, unsigned int denominator);
|
||||||
unsigned int __aeabi_uimod(unsigned int numerator, unsigned int denominator);
|
|
||||||
|
|
||||||
/* returns in R0 and R1 by tail calling an asm function */
|
/* returns in R0 and R1 by tail calling an asm function */
|
||||||
signed int __aeabi_idivmod(signed int numerator, signed int denominator);
|
signed int __aeabi_idivmod(signed int numerator, signed int denominator);
|
||||||
|
|
||||||
signed int __aeabi_idiv(signed int numerator, signed int denominator);
|
signed int __aeabi_idiv(signed int numerator, signed int denominator);
|
||||||
signed int __aeabi_imod(signed int numerator, signed int denominator);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* __ste_idivmod_ret_t __aeabi_idivmod(signed numerator, signed denominator)
|
* __ste_idivmod_ret_t __aeabi_idivmod(signed numerator, signed denominator)
|
||||||
|
@ -106,15 +104,6 @@ unsigned int __aeabi_uidiv(unsigned int numerator, unsigned int denominator)
|
||||||
return qr.q;
|
return qr.q;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int __aeabi_uimod(unsigned int numerator, unsigned int denominator)
|
|
||||||
{
|
|
||||||
struct qr qr = { .q_n = 0, .r_n = 0 };
|
|
||||||
|
|
||||||
uint_div_qr(numerator, denominator, &qr);
|
|
||||||
|
|
||||||
return qr.r;
|
|
||||||
}
|
|
||||||
|
|
||||||
unsigned int __aeabi_uidivmod(unsigned int numerator, unsigned int denominator)
|
unsigned int __aeabi_uidivmod(unsigned int numerator, unsigned int denominator)
|
||||||
{
|
{
|
||||||
struct qr qr = { .q_n = 0, .r_n = 0 };
|
struct qr qr = { .q_n = 0, .r_n = 0 };
|
||||||
|
@ -145,42 +134,6 @@ signed int __aeabi_idiv(signed int numerator, signed int denominator)
|
||||||
return qr.q;
|
return qr.q;
|
||||||
}
|
}
|
||||||
|
|
||||||
signed int __aeabi_imod(signed int numerator, signed int denominator)
|
|
||||||
{
|
|
||||||
signed int s;
|
|
||||||
signed int i;
|
|
||||||
signed int j;
|
|
||||||
signed int h;
|
|
||||||
struct qr qr = { .q_n = 0, .r_n = 0 };
|
|
||||||
|
|
||||||
/* in case modulo of a power of 2 */
|
|
||||||
for (i = 0, j = 0, h = 0, s = denominator; (s != 0) || (h > 1); i++) {
|
|
||||||
if (s & 1) {
|
|
||||||
j = i;
|
|
||||||
h++;
|
|
||||||
}
|
|
||||||
s = s >> 1;
|
|
||||||
}
|
|
||||||
if (h == 1)
|
|
||||||
return numerator >> j;
|
|
||||||
|
|
||||||
if (((numerator < 0) && (denominator > 0)) ||
|
|
||||||
((numerator > 0) && (denominator < 0)))
|
|
||||||
qr.q_n = 1; /* quotient shall be negate */
|
|
||||||
|
|
||||||
if (numerator < 0) {
|
|
||||||
numerator = -numerator;
|
|
||||||
qr.r_n = 1; /* remainder shall be negate */
|
|
||||||
}
|
|
||||||
|
|
||||||
if (denominator < 0)
|
|
||||||
denominator = -denominator;
|
|
||||||
|
|
||||||
uint_div_qr(numerator, denominator, &qr);
|
|
||||||
|
|
||||||
return qr.r;
|
|
||||||
}
|
|
||||||
|
|
||||||
signed int __aeabi_idivmod(signed int numerator, signed int denominator)
|
signed int __aeabi_idivmod(signed int numerator, signed int denominator)
|
||||||
{
|
{
|
||||||
struct qr qr = { .q_n = 0, .r_n = 0 };
|
struct qr qr = { .q_n = 0, .r_n = 0 };
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
|
* Copyright (c) 2018-2019, ARM Limited and Contributors. All rights reserved.
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: BSD-3-Clause
|
* SPDX-License-Identifier: BSD-3-Clause
|
||||||
*/
|
*/
|
||||||
|
@ -83,7 +83,8 @@ static int ras_interrupt_handler(uint32_t intr_raw, uint32_t flags,
|
||||||
{
|
{
|
||||||
struct ras_interrupt *ras_inrs = ras_interrupt_mappings.intrs;
|
struct ras_interrupt *ras_inrs = ras_interrupt_mappings.intrs;
|
||||||
struct ras_interrupt *selected = NULL;
|
struct ras_interrupt *selected = NULL;
|
||||||
int start, end, mid, probe_data, ret __unused;
|
int probe_data = 0;
|
||||||
|
int start, end, mid, ret __unused;
|
||||||
|
|
||||||
const struct err_handler_data err_data = {
|
const struct err_handler_data err_data = {
|
||||||
.version = ERR_HANDLER_VERSION,
|
.version = ERR_HANDLER_VERSION,
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2016-2017, Linaro Limited. All rights reserved.
|
* Copyright (c) 2016-2017, Linaro Limited. All rights reserved.
|
||||||
* Copyright (c) 2014-2017, Arm Limited. All rights reserved.
|
* Copyright (c) 2014-2019, Arm Limited. All rights reserved.
|
||||||
* Copyright (c) 2014, STMicroelectronics International N.V.
|
* Copyright (c) 2014, STMicroelectronics International N.V.
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
|
@ -445,7 +445,8 @@ static mmap_region_t *init_xlation_table_inner(mmap_region_t *mm,
|
||||||
} else {
|
} else {
|
||||||
xlat_table = (unsigned long)mmu_l2_base +
|
xlat_table = (unsigned long)mmu_l2_base +
|
||||||
next_xlat * MMU32B_L2_TABLE_SIZE;
|
next_xlat * MMU32B_L2_TABLE_SIZE;
|
||||||
assert(++next_xlat <= MAX_XLAT_TABLES);
|
next_xlat++;
|
||||||
|
assert(next_xlat <= MAX_XLAT_TABLES);
|
||||||
memset((char *)xlat_table, 0,
|
memset((char *)xlat_table, 0,
|
||||||
MMU32B_L2_TABLE_SIZE);
|
MMU32B_L2_TABLE_SIZE);
|
||||||
|
|
||||||
|
|
|
@ -38,6 +38,8 @@ int spm_response_add(uint16_t client_id, uint16_t handle, uint32_t token,
|
||||||
struct sprt_response *resp = &(responses[i]);
|
struct sprt_response *resp = &(responses[i]);
|
||||||
|
|
||||||
if ((resp->is_valid == 1) && (resp->token == token)) {
|
if ((resp->is_valid == 1) && (resp->token == token)) {
|
||||||
|
spin_unlock(&responses_lock);
|
||||||
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue