drm/amdkfd: fix freeing an unset pointer
authorTom Rix <trix@redhat.com>
Wed, 9 Feb 2022 14:52:54 +0000 (06:52 -0800)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 11 Feb 2022 21:10:40 +0000 (16:10 -0500)
clang static analysis reports this problem
kfd_chardev.c:2092:2: warning: 1st function call argument
  is an uninitialized value
        kvfree(bo_privs);
        ^~~~~~~~~~~~~~~~

When bo_buckets alloc fails, it jumps to an error handler
that frees the yet to be allocated bo_privs.  Because
bo_buckets is the first error, return directly.

Fixes: 5ccbb057c0a1 ("drm/amdkfd: CRIU Implement KFD checkpoint ioctl")
Signed-off-by: Tom Rix <trix@redhat.com>
Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com>
Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdkfd/kfd_chardev.c

index 8d998aa..6ad87fb 100644 (file)
@@ -1708,10 +1708,8 @@ static int criu_checkpoint_bos(struct kfd_process *p,
        void *mem;
 
        bo_buckets = kvzalloc(num_bos * sizeof(*bo_buckets), GFP_KERNEL);
-       if (!bo_buckets) {
-               ret = -ENOMEM;
-               goto exit;
-       }
+       if (!bo_buckets)
+               return -ENOMEM;
 
        bo_privs = kvzalloc(num_bos * sizeof(*bo_privs), GFP_KERNEL);
        if (!bo_privs) {