mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-16 09:34:18 +00:00
fdt: Fix coverity complaint about 32-bit multiplication
Coverity raised an eyebrow over our GICR frame size calculation: ======== CID 362942: Integer handling issues (OVERFLOW_BEFORE_WIDEN) Potentially overflowing expression "nr_cores * gicr_frame_size" with type "unsigned int" (32 bits, unsigned) is evaluated using 32-bit arithmetic, and then used in a context that expects an expression of type "uint64_t" (64 bits, unsigned). ======== Even with a GICv4 (256KB frame size) we need 16384 cores to overflow 32-bit, so it's not a practical issue. But it's also easy to fix, so let's just do that: cast gicr_frame_size to an unsigned 64-bit integer, so that the multiplication is done in the 64-bit realm. Change-Id: Iad10e19b9e58d5fbf9d13205fbcef0aac5ae48af Signed-off-by: Andre Przywara <andre.przywara@arm.com>
This commit is contained in:
parent
eeb77da646
commit
4276cfe2fa
1 changed files with 2 additions and 1 deletions
|
@ -425,7 +425,8 @@ int fdt_adjust_gic_redist(void *dtb, unsigned int nr_cores,
|
|||
redist_size_32 = cpu_to_fdt32(nr_cores * gicr_frame_size);
|
||||
val = &redist_size_32;
|
||||
} else {
|
||||
redist_size_64 = cpu_to_fdt64(nr_cores * gicr_frame_size);
|
||||
redist_size_64 = cpu_to_fdt64(nr_cores *
|
||||
(uint64_t)gicr_frame_size);
|
||||
val = &redist_size_64;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue