[PATCH] drm/amdgpu: Add a GEM_CREATE mask and bugfix

Alex Deucher alexdeucher at gmail.com
Mon Feb 17 14:44:24 UTC 2020


On Fri, Feb 14, 2020 at 7:17 PM Luben Tuikov <luben.tuikov at amd.com> wrote:
>
> Add a AMDGPU_GEM_CREATE_MASK and use it to check
> for valid/invalid GEM create flags coming in from
> userspace.
>
> Fix a bug in checking whether TMZ is supported at
> GEM create time.
>
> Signed-off-by: Luben Tuikov <luben.tuikov at amd.com>
> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 11 ++---------
>  include/uapi/drm/amdgpu_drm.h           |  2 ++
>  2 files changed, 4 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
> index b51a060c637d..74bb79e64fa3 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
> @@ -221,21 +221,14 @@ 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))
> -

I'd rather keep the list explicit so no one ends up forgetting to
update the mask the next time new flags are added.

Alex

> +       if (flags & ~AMDGPU_GEM_CREATE_MASK)
>                 return -EINVAL;
>
>         /* reject invalid gem domains */
>         if (args->in.domains & ~AMDGPU_GEM_DOMAIN_MASK)
>                 return -EINVAL;
>
> -       if (amdgpu_is_tmz(adev) && (flags & AMDGPU_GEM_CREATE_ENCRYPTED)) {
> +       if (!amdgpu_is_tmz(adev) && flags & AMDGPU_GEM_CREATE_ENCRYPTED) {
>                 DRM_ERROR("Cannot allocate secure buffer since TMZ is disabled\n");
>                 return -EINVAL;
>         }
> diff --git a/include/uapi/drm/amdgpu_drm.h b/include/uapi/drm/amdgpu_drm.h
> index eaf94a421901..c8463cdf4448 100644
> --- a/include/uapi/drm/amdgpu_drm.h
> +++ b/include/uapi/drm/amdgpu_drm.h
> @@ -141,6 +141,8 @@ extern "C" {
>   */
>  #define AMDGPU_GEM_CREATE_ENCRYPTED            (1 << 10)
>
> +#define AMDGPU_GEM_CREATE_MASK                  ((1 << 11)-1)
> +
>  struct drm_amdgpu_gem_create_in  {
>         /** the requested memory size */
>         __u64 bo_size;
> --
> 2.25.0.232.gd8437c57fa
>
> _______________________________________________
> amd-gfx mailing list
> amd-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx


More information about the amd-gfx mailing list