Hi Alexander,

LGTM, but a small styling nit:

On 26/05/26 15:41, Alexander A. Klimov wrote:
Don't just overwrite the original pointer passed to krealloc()
with its return value without checking latter:

     MEM = krealloc(MEM, SZ, GFP);

If krealloc() returns NULL, that erases the pointer
to the still allocated memory, hence leaks this memory.
Instead, use a temporary variable, check it's not NULL
and only then assign it to the original pointer:

     TMP = krealloc(MEM, SZ, GFP);
     if (!TMP) return;
     MEM = TMP;

Fixes: 6d45c81d229d ("drm/vc4: Add support for branching in shader validation.")
Signed-off-by: Alexander A. Klimov <[email protected]>
---
  drivers/gpu/drm/vc4/vc4_validate_shaders.c | 12 ++++++------
  1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/vc4/vc4_validate_shaders.c 
b/drivers/gpu/drm/vc4/vc4_validate_shaders.c
index d48cf76983c0..af48758592f9 100644
--- a/drivers/gpu/drm/vc4/vc4_validate_shaders.c
+++ b/drivers/gpu/drm/vc4/vc4_validate_shaders.c
@@ -291,14 +291,14 @@ static bool require_uniform_address_uniform(struct 
vc4_validated_shader_info *va
        uint32_t o = validated_shader->num_uniform_addr_offsets;
        uint32_t num_uniforms = validated_shader->uniforms_size / 4;

Declare the variable here.

- validated_shader->uniform_addr_offsets =
-               krealloc(validated_shader->uniform_addr_offsets,
-                        (o + 1) *
-                        sizeof(*validated_shader->uniform_addr_offsets),
-                        GFP_KERNEL);
-       if (!validated_shader->uniform_addr_offsets)
+       void *mem = krealloc(validated_shader->uniform_addr_offsets,

Instead of void *, you should probably use uint32_t *.

Best regards,
- Maíra

+                            (o + 1) *
+                            sizeof(*validated_shader->uniform_addr_offsets),
+                            GFP_KERNEL);
+       if (!mem)
                return false;
+ validated_shader->uniform_addr_offsets = mem;
        validated_shader->uniform_addr_offsets[o] = num_uniforms;
        validated_shader->num_uniform_addr_offsets++;

Reply via email to