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

Commit aa3b73f6 authored by Christian König's avatar Christian König Committed by Alex Deucher
Browse files

drm/amdgpu: use fence_context to judge ctx switch v2



Use of the ctx pointer is not safe, because they are likely already
be assigned to another ctx when doing comparing.

v2: recreate from scratch, avoid all unnecessary changes.

Signed-off-by: default avatarChristian König <christian.koenig@amd.com>
Reviewed-by: default avatarMonk.Liu <monk.liu@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 822b2cef
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -743,7 +743,7 @@ struct amdgpu_ib {
	struct amdgpu_user_fence        *user;
	unsigned			vm_id;
	uint64_t			vm_pd_addr;
	struct amdgpu_ctx		*ctx;
	uint64_t			ctx;
	uint32_t			gds_base, gds_size;
	uint32_t			gws_base, gws_size;
	uint32_t			oa_base, oa_size;
@@ -806,7 +806,7 @@ struct amdgpu_ring {
	unsigned		wptr_offs;
	unsigned		next_rptr_offs;
	unsigned		fence_offs;
	struct amdgpu_ctx	*current_ctx;
	uint64_t		current_ctx;
	enum amdgpu_ring_type	type;
	char			name[16];
	unsigned		cond_exe_offs;
+1 −1
Original line number Diff line number Diff line
@@ -741,7 +741,7 @@ static int amdgpu_cs_ib_fill(struct amdgpu_device *adev,

		ib->length_dw = chunk_ib->ib_bytes / 4;
		ib->flags = chunk_ib->flags;
		ib->ctx = parser->ctx;
		ib->ctx = parser->ctx->rings[ring->idx].entity.fence_context;
		j++;
	}

+1 −1
Original line number Diff line number Diff line
@@ -121,7 +121,7 @@ int amdgpu_ib_schedule(struct amdgpu_ring *ring, unsigned num_ibs,
{
	struct amdgpu_device *adev = ring->adev;
	struct amdgpu_ib *ib = &ibs[0];
	struct amdgpu_ctx *ctx, *old_ctx;
	uint64_t ctx, old_ctx;
	struct fence *hwf;
	struct amdgpu_vm *vm = NULL;
	unsigned i, patch_offset = ~0;