Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a8f5bf0b authored by monk.liu's avatar monk.liu Committed by Alex Deucher
Browse files

drm/amdgpu: fix type mismatch error



remaining timeout returned by amdgpu_fence_wait_any can be larger than
max int value, thus the truncated 32 bit value in r ends up being
negative while its original long value is positive.

Signed-off-by: default avatarmonk.liu <monk.liu@amd.com>
Reviewed-by: default avatarMichel Dänzer <michel.daenzer@amd.com>
Reviewed-by: default avatarChristian König <christian.koenig@amd.com>
Reviewed-by: default avatarJammy Zhou <jammy.zhou@amd.com>
parent 281b4223
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -318,6 +318,7 @@ int amdgpu_sa_bo_new(struct amdgpu_device *adev,
	struct amdgpu_fence *fences[AMDGPU_MAX_RINGS];
	unsigned tries[AMDGPU_MAX_RINGS];
	int i, r;
	signed long t;

	BUG_ON(align > sa_manager->align);
	BUG_ON(size > sa_manager->size);
@@ -351,8 +352,8 @@ int amdgpu_sa_bo_new(struct amdgpu_device *adev,
		} while (amdgpu_sa_bo_next_hole(sa_manager, fences, tries));

		spin_unlock(&sa_manager->wq.lock);
		r = amdgpu_fence_wait_any(adev, fences, false, MAX_SCHEDULE_TIMEOUT);
		r = (r > 0) ? 0 : r;
		t = amdgpu_fence_wait_any(adev, fences, false, MAX_SCHEDULE_TIMEOUT);
		r = (t > 0) ? 0 : t;
		spin_lock(&sa_manager->wq.lock);
		/* if we have nothing to wait for block */
		if (r == -ENOENT) {