[PATCH v14 1/4] drm/amdgpu: Allow more flags to be set on gem create.

Christian König christian.koenig at amd.com
Fri Aug 22 12:35:30 UTC 2025


On 13.08.25 20:49, David Francis wrote:
> AMDGPU_GEM_CREATE_VRAM_WIPE_ON_RELEASE is a flag that
> specifies that gem memory contains sensitive information and
> should be cleared to prevent snooping.
> 
> The COHERENT and UNCACHED gem create flags enable memory
> features related to sharing memory across devices.
> 
> These should be settable in GEM_CREATE_IOCTL but weren't.
> 
> Make a new define AMDGPU_GEM_CREATE_SETTABLE_MASK to
> track which gem flags can be used with gem create, and add
> these flags to it.
> 
> Signed-off-by: David Francis <David.Francis at amd.com>


Reviewed-by: Christian König <christian.koenig at amd.com>

> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 10 +---------
>  drivers/gpu/drm/amd/amdgpu/amdgpu_gem.h | 14 ++++++++++++++
>  2 files changed, 15 insertions(+), 9 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
> index e3f65977eeee..aefae3a9e6f4 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
> @@ -442,15 +442,7 @@ int amdgpu_gem_create_ioctl(struct drm_device *dev, void *data,
>  	int r;
>  
>  	/* reject invalid gem flags */
> -	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 |
> -		      AMDGPU_GEM_CREATE_VM_ALWAYS_VALID |
> -		      AMDGPU_GEM_CREATE_EXPLICIT_SYNC |
> -		      AMDGPU_GEM_CREATE_ENCRYPTED |
> -		      AMDGPU_GEM_CREATE_GFX12_DCC |
> -		      AMDGPU_GEM_CREATE_DISCARDABLE))
> +	if (flags & ~AMDGPU_GEM_CREATE_SETTABLE_MASK)
>  		return -EINVAL;
>  
>  	/* reject invalid gem domains */
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.h
> index b51e8f95ee86..b3047d73fe07 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.h
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.h
> @@ -71,4 +71,18 @@ int amdgpu_gem_op_ioctl(struct drm_device *dev, void *data,
>  int amdgpu_gem_metadata_ioctl(struct drm_device *dev, void *data,
>  				struct drm_file *filp);
>  
> +#define AMDGPU_GEM_CREATE_SETTABLE_MASK	(AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED | \
> +	AMDGPU_GEM_CREATE_NO_CPU_ACCESS | \
> +	AMDGPU_GEM_CREATE_CPU_GTT_USWC | \
> +	AMDGPU_GEM_CREATE_VRAM_CLEARED | \
> +	AMDGPU_GEM_CREATE_VM_ALWAYS_VALID | \
> +	AMDGPU_GEM_CREATE_EXPLICIT_SYNC | \
> +	AMDGPU_GEM_CREATE_VRAM_WIPE_ON_RELEASE | \
> +	AMDGPU_GEM_CREATE_ENCRYPTED | \
> +	AMDGPU_GEM_CREATE_GFX12_DCC | \
> +	AMDGPU_GEM_CREATE_DISCARDABLE | \
> +	AMDGPU_GEM_CREATE_COHERENT | \
> +	AMDGPU_GEM_CREATE_UNCACHED | \
> +	AMDGPU_GEM_CREATE_EXT_COHERENT)
> +
>  #endif



More information about the amd-gfx mailing list