drm/amdkfd: fix uint32 variable compared to less than zero
authorColin Ian King <colin.king@canonical.com>
Thu, 22 Apr 2021 12:31:58 +0000 (13:31 +0100)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 23 Apr 2021 21:16:43 +0000 (17:16 -0400)
Currently the call to kfd_process_gpuidx_from_gpuid is returning an
int value and this is being assigned to a uint32_t variable gpuidx
and this is being checked for a negative error return which is always
going to be false. Fix this by making gpuidx an int32_t. This makes
gpuidx also type consistent with the use of gpuidx from the callers.

Addresses-Coverity: ("Unsigned compared against 0")
Fixes: cda0f85bfa5e ("drm/amdkfd: refine migration policy with xnack on")
Signed-off-by: Colin Ian King <colin.king@canonical.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_svm.c

index cfd8065..4cc2539 100644 (file)
@@ -1330,7 +1330,7 @@ static void svm_range_unreserve_bos(struct svm_validate_context *ctx)
  */
 static int svm_range_validate_and_map(struct mm_struct *mm,
                                      struct svm_range *prange,
-                                     uint32_t gpuidx, bool intr, bool wait)
+                                     int32_t gpuidx, bool intr, bool wait)
 {
        struct svm_validate_context ctx;
        struct hmm_range *hmm_range;