diff options
| author | Christian König <christian.koenig@amd.com> | 2017-08-23 21:11:25 +0300 | 
|---|---|---|
| committer | Alex Deucher <alexander.deucher@amd.com> | 2017-08-29 22:27:57 +0300 | 
| commit | 6ac7defb5ccf2c5e7b3fc9eb648535f3b3d17bc0 (patch) | |
| tree | 48ef65caa46be7dc869d42d65635b60cc3c62050 /drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | |
| parent | 34d7be5dc28041b95254da517fd0f0f740544ece (diff) | |
| download | linux-6ac7defb5ccf2c5e7b3fc9eb648535f3b3d17bc0.tar.xz | |
drm/amdgpu: cleanup GWS, GDS and OA allocation
Those are certainly not kernel allocations, instead set the NO_CPU_ACCESS flag.
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Chunming Zhou <david1.zhou@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 15 | 
1 files changed, 7 insertions, 8 deletions
| diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c index 9b1b6bdd4841..ba012933e6aa 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c @@ -186,17 +186,17 @@ int amdgpu_gem_create_ioctl(struct drm_device *dev, void *data,  {  	struct amdgpu_device *adev = dev->dev_private;  	union drm_amdgpu_gem_create *args = data; +	uint64_t flags = args->in.domain_flags;  	uint64_t size = args->in.bo_size;  	struct drm_gem_object *gobj;  	uint32_t handle; -	bool kernel = false;  	int r;  	/* reject invalid gem flags */ -	if (args->in.domain_flags & ~(AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED | -				      AMDGPU_GEM_CREATE_NO_CPU_ACCESS | -				      AMDGPU_GEM_CREATE_CPU_GTT_USWC | -				      AMDGPU_GEM_CREATE_VRAM_CLEARED)) +	if (flags & ~(AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED | +		      AMDGPU_GEM_CREATE_NO_CPU_ACCESS | +		      AMDGPU_GEM_CREATE_CPU_GTT_USWC | +		      AMDGPU_GEM_CREATE_VRAM_CLEARED))  		return -EINVAL;  	/* reject invalid gem domains */ @@ -211,7 +211,7 @@ int amdgpu_gem_create_ioctl(struct drm_device *dev, void *data,  	/* create a gem object to contain this object in */  	if (args->in.domains & (AMDGPU_GEM_DOMAIN_GDS |  	    AMDGPU_GEM_DOMAIN_GWS | AMDGPU_GEM_DOMAIN_OA)) { -		kernel = true; +		flags |= AMDGPU_GEM_CREATE_NO_CPU_ACCESS;  		if (args->in.domains == AMDGPU_GEM_DOMAIN_GDS)  			size = size << AMDGPU_GDS_SHIFT;  		else if (args->in.domains == AMDGPU_GEM_DOMAIN_GWS) @@ -225,8 +225,7 @@ int amdgpu_gem_create_ioctl(struct drm_device *dev, void *data,  	r = amdgpu_gem_object_create(adev, size, args->in.alignment,  				     (u32)(0xffffffff & args->in.domains), -				     args->in.domain_flags, -				     kernel, &gobj); +				     flags, false, &gobj);  	if (r)  		return r; | 
