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

Commit 1f207f81 authored by Chunming Zhou's avatar Chunming Zhou Committed by Alex Deucher
Browse files

drm/amdgpu: make vmid owner be client_id



Using the pointer is not adequate.

Signed-off-by: default avatarChunming Zhou <David1.Zhou@amd.com>
Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
Reviewed-by: default avatarMonk Liu <monk.liu@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 031e2983
Loading
Loading
Loading
Loading
+3 −3
Original line number Original line Diff line number Diff line
@@ -185,7 +185,7 @@ int amdgpu_vm_grab_id(struct amdgpu_vm *vm, struct amdgpu_ring *ring,
		if (!id)
		if (!id)
			continue;
			continue;


		if (atomic_long_read(&id->owner) != (long)vm)
		if (atomic_long_read(&id->owner) != vm->client_id)
			continue;
			continue;


		if (pd_addr != id->pd_gpu_addr)
		if (pd_addr != id->pd_gpu_addr)
@@ -261,7 +261,7 @@ int amdgpu_vm_grab_id(struct amdgpu_vm *vm, struct amdgpu_ring *ring,


	list_move_tail(&id->list, &adev->vm_manager.ids_lru);
	list_move_tail(&id->list, &adev->vm_manager.ids_lru);
	id->last_user = ring;
	id->last_user = ring;
	atomic_long_set(&id->owner, (long)vm);
	atomic_long_set(&id->owner, vm->client_id);
	vm->ids[ring->idx] = id;
	vm->ids[ring->idx] = id;


	*vm_id = id - adev->vm_manager.ids;
	*vm_id = id - adev->vm_manager.ids;
@@ -1485,7 +1485,7 @@ void amdgpu_vm_fini(struct amdgpu_device *adev, struct amdgpu_vm *vm)
				 list) {
				 list) {
		if (!id)
		if (!id)
			continue;
			continue;
		if (atomic_long_read(&id->owner) == (long)vm) {
		if (atomic_long_read(&id->owner) == vm->client_id) {
			atomic_long_set(&id->owner, 0);
			atomic_long_set(&id->owner, 0);
			id->pd_gpu_addr = 0;
			id->pd_gpu_addr = 0;
		}
		}