]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
remoteproc: k3-r5: cast size to size_t6dd
authorPhilippe Schenker <philippe.schenker@impulsing.ch>
Tue, 11 Nov 2025 07:16:26 +0000 (08:16 +0100)
committerTom Rini <trini@konsulko.com>
Tue, 18 Nov 2025 18:50:05 +0000 (12:50 -0600)
When compiling for R5 core with CONFIG_REMOTEPROC_TI_K3_R5F,
passing 'size' (ulong) to ti_secure_image_post_process() caused
a type mismatch compiler error.

On platforms where ulong and size_t differ in size, directly
casting could lead to out-of-bounds memory access. Fix by
introducing a size_t temporary variable, passing it to the
function, and writing back the potentially modified value for
use in subsequent calls.

Signed-off-by: Philippe Schenker <philippe.schenker@impulsing.ch>
Acked-by: Andrew Davis <afd@ti.com>
drivers/remoteproc/ti_k3_r5f_rproc.c

index c738607c10925c33d6f5a614d8ada2da0c5ecb2e..48ebdaf069318e83c82f8fd4def6e776efdb50c3 100644 (file)
@@ -315,6 +315,7 @@ static int k3_r5f_load(struct udevice *dev, ulong addr, ulong size)
        bool mem_auto_init;
        void *image_addr = (void *)addr;
        int ret;
+       size_t size_img;
 
        dev_dbg(dev, "%s addr = 0x%lx, size = 0x%lx\n", __func__, addr, size);
 
@@ -341,7 +342,9 @@ static int k3_r5f_load(struct udevice *dev, ulong addr, ulong size)
 
        k3_r5f_init_tcm_memories(core, mem_auto_init);
 
-       ti_secure_image_post_process(&image_addr, &size);
+       size_img = size;
+       ti_secure_image_post_process(&image_addr, &size_img);
+       size = size_img;
 
        ret = rproc_elf_load_image(dev, addr, size);
        if (ret < 0) {