drm/amdgpu: make vmid owner be client_id
authorChunming Zhou <David1.Zhou@amd.com>
Mon, 25 Apr 2016 02:23:34 +0000 (10:23 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 11 May 2016 16:31:15 +0000 (12:31 -0400)
Using the pointer is not adequate.

Signed-off-by: Chunming Zhou <David1.Zhou@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Monk Liu <monk.liu@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c

index 275378c46b9f16103367053ecb31011d70df455f..2c3d9557e1a2a81238dc3e1cda81e4d9acd74a6b 100644 (file)
@@ -185,7 +185,7 @@ int amdgpu_vm_grab_id(struct amdgpu_vm *vm, struct amdgpu_ring *ring,
                if (!id)
                        continue;
 
-               if (atomic_long_read(&id->owner) != (long)vm)
+               if (atomic_long_read(&id->owner) != vm->client_id)
                        continue;
 
                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);
        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_id = id - adev->vm_manager.ids;
@@ -1485,7 +1485,7 @@ void amdgpu_vm_fini(struct amdgpu_device *adev, struct amdgpu_vm *vm)
                                 list) {
                if (!id)
                        continue;
-               if (atomic_long_read(&id->owner) == (long)vm) {
+               if (atomic_long_read(&id->owner) == vm->client_id) {
                        atomic_long_set(&id->owner, 0);
                        id->pd_gpu_addr = 0;
                }