drm/amdkfd: Fix criu_restore_bo error handling
authorFelix Kuehling <Felix.Kuehling@amd.com>
Fri, 18 Feb 2022 22:25:23 +0000 (17:25 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 22 Feb 2022 19:40:44 +0000 (14:40 -0500)
Clang static analysis reports this problem
kfd_chardev.c:2327:2: warning: 1st function call argument
  is an uninitialized value
  kvfree(bo_privs);
  ^~~~~~~~~~~~~~~~

Make sure bo_buckets and bo_privs are initialized so freeing them in the
error handling code path will never result in undefined behaviour.

Fixes: 73fa13b6a511 ("drm/amdkfd: CRIU Implement KFD restore ioctl")
Reported-by: Tom Rix <trix@redhat.com>
Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com>
Reviewed-by: Rajneesh Bhardwaj <rajneesh.bhardwaj@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdkfd/kfd_chardev.c

index 965af2a08bc0287242fde879a30d17d53b0d578f..7affec907fd163e776234de34e702270d6e4f429 100644 (file)
@@ -2097,8 +2097,8 @@ static int criu_restore_bos(struct kfd_process *p,
                            uint64_t *priv_offset,
                            uint64_t max_priv_data_size)
 {
-       struct kfd_criu_bo_bucket *bo_buckets;
-       struct kfd_criu_bo_priv_data *bo_privs;
+       struct kfd_criu_bo_bucket *bo_buckets = NULL;
+       struct kfd_criu_bo_priv_data *bo_privs = NULL;
        const bool criu_resume = true;
        bool flush_tlbs = false;
        int ret = 0, j = 0;