diff options
Diffstat (limited to 'drivers/gpu/drm')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h | 2 | ||||
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 19 | ||||
| -rw-r--r-- | drivers/gpu/drm/amd/amdkfd/kfd_chardev.c | 23 | ||||
| -rw-r--r-- | drivers/gpu/drm/amd/amdkfd/kfd_process.c | 3 | 
4 files changed, 20 insertions, 27 deletions
| diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h index db16b3e83694..cf62f43a03da 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h @@ -269,7 +269,7 @@ int amdgpu_amdkfd_gpuvm_free_memory_of_gpu(  		struct kgd_dev *kgd, struct kgd_mem *mem, void *drm_priv,  		uint64_t *size);  int amdgpu_amdkfd_gpuvm_map_memory_to_gpu( -		struct kgd_dev *kgd, struct kgd_mem *mem, void *drm_priv, bool *table_freed); +		struct kgd_dev *kgd, struct kgd_mem *mem, void *drm_priv);  int amdgpu_amdkfd_gpuvm_unmap_memory_from_gpu(  		struct kgd_dev *kgd, struct kgd_mem *mem, void *drm_priv);  int amdgpu_amdkfd_gpuvm_sync_memory( diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c index eb82739b3080..4fb15750b9bb 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c @@ -1057,8 +1057,7 @@ static void unmap_bo_from_gpuvm(struct kgd_mem *mem,  static int update_gpuvm_pte(struct kgd_mem *mem,  			    struct kfd_mem_attachment *entry, -			    struct amdgpu_sync *sync, -			    bool *table_freed) +			    struct amdgpu_sync *sync)  {  	struct amdgpu_bo_va *bo_va = entry->bo_va;  	struct amdgpu_device *adev = entry->adev; @@ -1069,7 +1068,7 @@ static int update_gpuvm_pte(struct kgd_mem *mem,  		return ret;  	/* Update the page tables  */ -	ret = amdgpu_vm_bo_update(adev, bo_va, false, table_freed); +	ret = amdgpu_vm_bo_update(adev, bo_va, false);  	if (ret) {  		pr_err("amdgpu_vm_bo_update failed\n");  		return ret; @@ -1081,8 +1080,7 @@ static int update_gpuvm_pte(struct kgd_mem *mem,  static int map_bo_to_gpuvm(struct kgd_mem *mem,  			   struct kfd_mem_attachment *entry,  			   struct amdgpu_sync *sync, -			   bool no_update_pte, -			   bool *table_freed) +			   bool no_update_pte)  {  	int ret; @@ -1099,7 +1097,7 @@ static int map_bo_to_gpuvm(struct kgd_mem *mem,  	if (no_update_pte)  		return 0; -	ret = update_gpuvm_pte(mem, entry, sync, table_freed); +	ret = update_gpuvm_pte(mem, entry, sync);  	if (ret) {  		pr_err("update_gpuvm_pte() failed\n");  		goto update_gpuvm_pte_failed; @@ -1596,8 +1594,7 @@ int amdgpu_amdkfd_gpuvm_free_memory_of_gpu(  }  int amdgpu_amdkfd_gpuvm_map_memory_to_gpu( -		struct kgd_dev *kgd, struct kgd_mem *mem, -		void *drm_priv, bool *table_freed) +		struct kgd_dev *kgd, struct kgd_mem *mem, void *drm_priv)  {  	struct amdgpu_device *adev = get_amdgpu_device(kgd);  	struct amdgpu_vm *avm = drm_priv_to_vm(drm_priv); @@ -1685,7 +1682,7 @@ int amdgpu_amdkfd_gpuvm_map_memory_to_gpu(  			 entry->va, entry->va + bo_size, entry);  		ret = map_bo_to_gpuvm(mem, entry, ctx.sync, -				      is_invalid_userptr, table_freed); +				      is_invalid_userptr);  		if (ret) {  			pr_err("Failed to map bo to gpuvm\n");  			goto out_unreserve; @@ -2135,7 +2132,7 @@ static int validate_invalid_user_pages(struct amdkfd_process_info *process_info)  				continue;  			kfd_mem_dmaunmap_attachment(mem, attachment); -			ret = update_gpuvm_pte(mem, attachment, &sync, NULL); +			ret = update_gpuvm_pte(mem, attachment, &sync);  			if (ret) {  				pr_err("%s: update PTE failed\n", __func__);  				/* make sure this gets validated again */ @@ -2341,7 +2338,7 @@ int amdgpu_amdkfd_gpuvm_restore_process_bos(void *info, struct dma_fence **ef)  				continue;  			kfd_mem_dmaunmap_attachment(mem, attachment); -			ret = update_gpuvm_pte(mem, attachment, &sync_obj, NULL); +			ret = update_gpuvm_pte(mem, attachment, &sync_obj);  			if (ret) {  				pr_debug("Memory eviction: update PTE failed. Try again\n");  				goto validate_map_fail; diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c index a10e3823b660..84894cd81ced 100644 --- a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c +++ b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c @@ -1393,7 +1393,6 @@ static int kfd_ioctl_map_memory_to_gpu(struct file *filep,  	long err = 0;  	int i;  	uint32_t *devices_arr = NULL; -	bool table_freed = false;  	dev = kfd_device_by_id(GET_GPU_ID(args->handle));  	if (!dev) @@ -1451,8 +1450,7 @@ static int kfd_ioctl_map_memory_to_gpu(struct file *filep,  			goto get_mem_obj_from_handle_failed;  		}  		err = amdgpu_amdkfd_gpuvm_map_memory_to_gpu( -			peer->kgd, (struct kgd_mem *)mem, -			peer_pdd->drm_priv, &table_freed); +			peer->kgd, (struct kgd_mem *)mem, peer_pdd->drm_priv);  		if (err) {  			pr_err("Failed to map to gpu %d/%d\n",  			       i, args->n_devices); @@ -1470,17 +1468,16 @@ static int kfd_ioctl_map_memory_to_gpu(struct file *filep,  	}  	/* Flush TLBs after waiting for the page table updates to complete */ -	if (table_freed) { -		for (i = 0; i < args->n_devices; i++) { -			peer = kfd_device_by_id(devices_arr[i]); -			if (WARN_ON_ONCE(!peer)) -				continue; -			peer_pdd = kfd_get_process_device_data(peer, p); -			if (WARN_ON_ONCE(!peer_pdd)) -				continue; -			kfd_flush_tlb(peer_pdd, TLB_FLUSH_LEGACY); -		} +	for (i = 0; i < args->n_devices; i++) { +		peer = kfd_device_by_id(devices_arr[i]); +		if (WARN_ON_ONCE(!peer)) +			continue; +		peer_pdd = kfd_get_process_device_data(peer, p); +		if (WARN_ON_ONCE(!peer_pdd)) +			continue; +		kfd_flush_tlb(peer_pdd, TLB_FLUSH_LEGACY);  	} +  	kfree(devices_arr);  	return err; diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_process.c b/drivers/gpu/drm/amd/amdkfd/kfd_process.c index 21ec8a18cad2..8a2c6fc438c0 100644 --- a/drivers/gpu/drm/amd/amdkfd/kfd_process.c +++ b/drivers/gpu/drm/amd/amdkfd/kfd_process.c @@ -714,8 +714,7 @@ static int kfd_process_alloc_gpuvm(struct kfd_process_device *pdd,  	if (err)  		goto err_alloc_mem; -	err = amdgpu_amdkfd_gpuvm_map_memory_to_gpu(kdev->kgd, mem, -			pdd->drm_priv, NULL); +	err = amdgpu_amdkfd_gpuvm_map_memory_to_gpu(kdev->kgd, mem, pdd->drm_priv);  	if (err)  		goto err_map_mem; | 
