Mesa (main): winsys/amdgpu: remove an amdgpu_cs dereference from amdgpu_cs_add_buffer
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Fri Oct 29 07:13:33 UTC 2021
Module: Mesa
Branch: main
Commit: 107bc76882e9e8d8f1c71d68d3af7d27194bfad1
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=107bc76882e9e8d8f1c71d68d3af7d27194bfad1
Author: Marek Olšák <marek.olsak at amd.com>
Date: Fri Oct 22 00:30:36 2021 -0400
winsys/amdgpu: remove an amdgpu_cs dereference from amdgpu_cs_add_buffer
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer at amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13478>
---
src/gallium/drivers/radeon/radeon_winsys.h | 1 +
src/gallium/winsys/amdgpu/drm/amdgpu_cs.c | 6 +++---
2 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/src/gallium/drivers/radeon/radeon_winsys.h b/src/gallium/drivers/radeon/radeon_winsys.h
index a61d6d4e187..180b0c5ce32 100644
--- a/src/gallium/drivers/radeon/radeon_winsys.h
+++ b/src/gallium/drivers/radeon/radeon_winsys.h
@@ -194,6 +194,7 @@ struct radeon_cmdbuf {
/* Private winsys data. */
void *priv;
+ void *csc; /* amdgpu_cs_context */
};
/* Tiling info for display code, DRI sharing, and other data. */
diff --git a/src/gallium/winsys/amdgpu/drm/amdgpu_cs.c b/src/gallium/winsys/amdgpu/drm/amdgpu_cs.c
index cdd8ced5266..2152890774d 100644
--- a/src/gallium/winsys/amdgpu/drm/amdgpu_cs.c
+++ b/src/gallium/winsys/amdgpu/drm/amdgpu_cs.c
@@ -644,7 +644,7 @@ static unsigned amdgpu_cs_add_buffer(struct radeon_cmdbuf *rcs,
/* Don't use the "domains" parameter. Amdgpu doesn't support changing
* the buffer placement during command submission.
*/
- struct amdgpu_cs_context *cs = amdgpu_cs(rcs)->csc;
+ struct amdgpu_cs_context *cs = (struct amdgpu_cs_context*)rcs->csc;
struct amdgpu_winsys_bo *bo = (struct amdgpu_winsys_bo*)buf;
struct amdgpu_cs_buffer *buffer;
int index;
@@ -980,7 +980,7 @@ amdgpu_cs_create(struct radeon_cmdbuf *rcs,
memset(cs->buffer_indices_hashlist, -1, sizeof(cs->buffer_indices_hashlist));
/* Set the first submission context as current. */
- cs->csc = &cs->csc1;
+ rcs->csc = cs->csc = &cs->csc1;
cs->cst = &cs->csc2;
/* Assign to both amdgpu_cs_context; only csc will use it. */
@@ -1731,7 +1731,7 @@ static int amdgpu_cs_flush(struct radeon_cmdbuf *rcs,
amdgpu_add_fence_dependencies_bo_lists(cs);
/* Swap command streams. "cst" is going to be submitted. */
- cs->csc = cs->cst;
+ rcs->csc = cs->csc = cs->cst;
cs->cst = cur;
/* Submit. */
More information about the mesa-commit
mailing list