summaryrefslogtreecommitdiffstats
path: root/drivers/gpu
diff options
context:
space:
mode:
authorshanzhulig <shanzhulig@gmail.com>2023-06-27 18:10:47 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2023-08-30 16:27:11 +0200
commitc6059af6bf5ed436b4aa5229e8113bd2546322d4 (patch)
tree4fee4bcee943b2fff5527e291051bc328958f27d /drivers/gpu
parentfe49aa73cca6608714477b74bfc6874b9db979df (diff)
downloadlinux-stable-c6059af6bf5ed436b4aa5229e8113bd2546322d4.tar.gz
linux-stable-c6059af6bf5ed436b4aa5229e8113bd2546322d4.tar.bz2
linux-stable-c6059af6bf5ed436b4aa5229e8113bd2546322d4.zip
drm/amdgpu: Fix potential fence use-after-free v2
[ Upstream commit 2e54154b9f27262efd0cb4f903cc7d5ad1fe9628 ] fence Decrements the reference count before exiting. Avoid Race Vulnerabilities for fence use-after-free. v2 (chk): actually fix the use after free and not just move it. Signed-off-by: shanzhulig <shanzhulig@gmail.com> Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'drivers/gpu')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
index 7eeb98fe50ed..0e478d4d830c 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
@@ -1575,15 +1575,15 @@ static int amdgpu_cs_wait_all_fences(struct amdgpu_device *adev,
continue;
r = dma_fence_wait_timeout(fence, true, timeout);
+ if (r > 0 && fence->error)
+ r = fence->error;
+
dma_fence_put(fence);
if (r < 0)
return r;
if (r == 0)
break;
-
- if (fence->error)
- return fence->error;
}
memset(wait, 0, sizeof(*wait));