diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 46 | 
1 files changed, 6 insertions, 40 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c index 2c68118fe9fd..d5e685c5e28b 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c @@ -58,7 +58,7 @@ amdgpu_gem_add_input_fence(struct drm_file *filp,  		return 0;  	syncobj_handles = memdup_user(u64_to_user_ptr(syncobj_handles_array), -				      sizeof(uint32_t) * num_syncobj_handles); +				      size_mul(sizeof(uint32_t), num_syncobj_handles));  	if (IS_ERR(syncobj_handles))  		return PTR_ERR(syncobj_handles); @@ -317,8 +317,7 @@ static int amdgpu_gem_object_open(struct drm_gem_object *obj,  	 */  	if (!vm->is_compute_context || !vm->process_info)  		return 0; -	if (!obj->import_attach || -	    !dma_buf_is_dynamic(obj->import_attach->dmabuf)) +	if (!drm_gem_is_imported(obj) || !dma_buf_is_dynamic(obj->dma_buf))  		return 0;  	mutex_lock_nested(&vm->process_info->lock, 1);  	if (!WARN_ON(!vm->process_info->eviction_fence)) { @@ -329,7 +328,7 @@ static int amdgpu_gem_object_open(struct drm_gem_object *obj,  			dev_warn(adev->dev, "validate_and_fence failed: %d\n", r);  			if (ti) { -				dev_warn(adev->dev, "pid %d\n", ti->pid); +				dev_warn(adev->dev, "pid %d\n", ti->task.pid);  				amdgpu_vm_put_task_info(ti);  			}  		} @@ -791,36 +790,6 @@ error:  	return fence;  } -/** - * amdgpu_gem_va_map_flags - map GEM UAPI flags into hardware flags - * - * @adev: amdgpu_device pointer - * @flags: GEM UAPI flags - * - * Returns the GEM UAPI flags mapped into hardware for the ASIC. - */ -uint64_t amdgpu_gem_va_map_flags(struct amdgpu_device *adev, uint32_t flags) -{ -	uint64_t pte_flag = 0; - -	if (flags & AMDGPU_VM_PAGE_EXECUTABLE) -		pte_flag |= AMDGPU_PTE_EXECUTABLE; -	if (flags & AMDGPU_VM_PAGE_READABLE) -		pte_flag |= AMDGPU_PTE_READABLE; -	if (flags & AMDGPU_VM_PAGE_WRITEABLE) -		pte_flag |= AMDGPU_PTE_WRITEABLE; -	if (flags & AMDGPU_VM_PAGE_PRT) -		pte_flag |= AMDGPU_PTE_PRT_FLAG(adev); -	if (flags & AMDGPU_VM_PAGE_NOALLOC) -		pte_flag |= AMDGPU_PTE_NOALLOC; - -	if (adev->gmc.gmc_funcs->map_mtype) -		pte_flag |= amdgpu_gmc_map_mtype(adev, -						 flags & AMDGPU_VM_MTYPE_MASK); - -	return pte_flag; -} -  int amdgpu_gem_va_ioctl(struct drm_device *dev, void *data,  			  struct drm_file *filp)  { @@ -841,7 +810,6 @@ int amdgpu_gem_va_ioctl(struct drm_device *dev, void *data,  	struct dma_fence_chain *timeline_chain = NULL;  	struct dma_fence *fence;  	struct drm_exec exec; -	uint64_t va_flags;  	uint64_t vm_size;  	int r = 0; @@ -945,10 +913,9 @@ int amdgpu_gem_va_ioctl(struct drm_device *dev, void *data,  	switch (args->operation) {  	case AMDGPU_VA_OP_MAP: -		va_flags = amdgpu_gem_va_map_flags(adev, args->flags);  		r = amdgpu_vm_bo_map(adev, bo_va, args->va_address,  				     args->offset_in_bo, args->map_size, -				     va_flags); +				     args->flags);  		break;  	case AMDGPU_VA_OP_UNMAP:  		r = amdgpu_vm_bo_unmap(adev, bo_va, args->va_address); @@ -960,10 +927,9 @@ int amdgpu_gem_va_ioctl(struct drm_device *dev, void *data,  						args->map_size);  		break;  	case AMDGPU_VA_OP_REPLACE: -		va_flags = amdgpu_gem_va_map_flags(adev, args->flags);  		r = amdgpu_vm_bo_replace_map(adev, bo_va, args->va_address,  					     args->offset_in_bo, args->map_size, -					     va_flags); +					     args->flags);  		break;  	default:  		break; @@ -1024,7 +990,7 @@ int amdgpu_gem_op_ioctl(struct drm_device *dev, void *data,  		break;  	}  	case AMDGPU_GEM_OP_SET_PLACEMENT: -		if (robj->tbo.base.import_attach && +		if (drm_gem_is_imported(&robj->tbo.base) &&  		    args->value & AMDGPU_GEM_DOMAIN_VRAM) {  			r = -EINVAL;  			amdgpu_bo_unreserve(robj);  | 
