diff options
author | Marek Olšák <marek.olsak@amd.com> | 2021-10-22 00:30:36 -0400 |
---|---|---|
committer | Marge Bot <emma+marge@anholt.net> | 2021-10-29 06:54:21 +0000 |
commit | 107bc76882e9e8d8f1c71d68d3af7d27194bfad1 (patch) | |
tree | 14a24118bb8bec05353d077ffd48b742bac3d0cb /src | |
parent | 8bb0c09f9eb3d155b0a70d587a9be60b1611c859 (diff) |
winsys/amdgpu: remove an amdgpu_cs dereference from amdgpu_cs_add_buffer
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13478>
Diffstat (limited to 'src')
-rw-r--r-- | src/gallium/drivers/radeon/radeon_winsys.h | 1 | ||||
-rw-r--r-- | 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. */ |