From: Boris Brezillon <boris.brezillon@collabora.com>
To: "Boris Brezillon" <boris.brezillon@collabora.com>,
"Steven Price" <steven.price@arm.com>,
"Liviu Dudau" <liviu.dudau@arm.com>,
"Adrián Larumbe" <adrian.larumbe@collabora.com>
Cc: dri-devel@lists.freedesktop.org, kernel@collabora.com
Subject: Re: [PATCH v2] drm/panthor: Don't create a file offset for NO_MMAP BOs
Date: Thu, 17 Apr 2025 11:34:39 +0200 [thread overview]
Message-ID: <20250417113439.3f6469d6@collabora.com> (raw)
In-Reply-To: <20250417093247.3455096-1-boris.brezillon@collabora.com>
On Thu, 17 Apr 2025 11:32:47 +0200
Boris Brezillon <boris.brezillon@collabora.com> wrote:
> Right now the DRM_PANTHOR_BO_NO_MMAP flag is ignored by
> panthor_ioctl_bo_mmap_offset(), meaning BOs with this flag set can
> have a file offset but can't be mapped anyway, because
> panthor_gem_mmap() will filter them out.
>
> If we error out at mmap_offset creation time, we can get rid of
> panthor_gem_mmap() and call drm_gem_shmem_object_mmap directly, and
> we get rid of this inconsistency of having an mmap offset for a
> BO that can never be mmap-ed.
>
> Changes in v2:
> - Get rid of panthor_gem_mmap()
> - Get rid of the Fixes tag and adjust the commit message accordingly
> - Return ENOPERM instead of EINVAL
>
> Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Liviu, Steve, I intentionally dropped your R-bs because this v2 gets
rid of panthor_gem_mmap(), and I want a confirmation that you're okay
with that.
> ---
> drivers/gpu/drm/panthor/panthor_drv.c | 5 +++++
> drivers/gpu/drm/panthor/panthor_gem.c | 13 +------------
> 2 files changed, 6 insertions(+), 12 deletions(-)
>
> diff --git a/drivers/gpu/drm/panthor/panthor_drv.c b/drivers/gpu/drm/panthor/panthor_drv.c
> index 06fe46e32073..7cd131af340d 100644
> --- a/drivers/gpu/drm/panthor/panthor_drv.c
> +++ b/drivers/gpu/drm/panthor/panthor_drv.c
> @@ -940,6 +940,7 @@ static int panthor_ioctl_bo_mmap_offset(struct drm_device *ddev, void *data,
> struct drm_file *file)
> {
> struct drm_panthor_bo_mmap_offset *args = data;
> + struct panthor_gem_object *bo;
> struct drm_gem_object *obj;
> int ret;
>
> @@ -950,6 +951,10 @@ static int panthor_ioctl_bo_mmap_offset(struct drm_device *ddev, void *data,
> if (!obj)
> return -ENOENT;
>
> + bo = to_panthor_bo(obj);
> + if (bo->flags & DRM_PANTHOR_BO_NO_MMAP)
> + return -EPERM;
> +
> ret = drm_gem_create_mmap_offset(obj);
> if (ret)
> goto out;
> diff --git a/drivers/gpu/drm/panthor/panthor_gem.c b/drivers/gpu/drm/panthor/panthor_gem.c
> index fd014ccc3bfc..22d78cef9c66 100644
> --- a/drivers/gpu/drm/panthor/panthor_gem.c
> +++ b/drivers/gpu/drm/panthor/panthor_gem.c
> @@ -129,17 +129,6 @@ panthor_kernel_bo_create(struct panthor_device *ptdev, struct panthor_vm *vm,
> return ERR_PTR(ret);
> }
>
> -static int panthor_gem_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma)
> -{
> - struct panthor_gem_object *bo = to_panthor_bo(obj);
> -
> - /* Don't allow mmap on objects that have the NO_MMAP flag set. */
> - if (bo->flags & DRM_PANTHOR_BO_NO_MMAP)
> - return -EINVAL;
> -
> - return drm_gem_shmem_object_mmap(obj, vma);
> -}
> -
> static struct dma_buf *
> panthor_gem_prime_export(struct drm_gem_object *obj, int flags)
> {
> @@ -169,7 +158,7 @@ static const struct drm_gem_object_funcs panthor_gem_funcs = {
> .get_sg_table = drm_gem_shmem_object_get_sg_table,
> .vmap = drm_gem_shmem_object_vmap,
> .vunmap = drm_gem_shmem_object_vunmap,
> - .mmap = panthor_gem_mmap,
> + .mmap = drm_gem_shmem_object_mmap,
> .status = panthor_gem_status,
> .export = panthor_gem_prime_export,
> .vm_ops = &drm_gem_shmem_vm_ops,
next prev parent reply other threads:[~2025-04-17 9:34 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-17 9:32 [PATCH v2] drm/panthor: Don't create a file offset for NO_MMAP BOs Boris Brezillon
2025-04-17 9:34 ` Boris Brezillon [this message]
2025-04-17 9:44 ` Steven Price
2025-04-17 9:53 ` Matthew Auld
2025-04-17 10:15 ` Boris Brezillon
2025-04-17 11:19 ` Liviu Dudau
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250417113439.3f6469d6@collabora.com \
--to=boris.brezillon@collabora.com \
--cc=adrian.larumbe@collabora.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=kernel@collabora.com \
--cc=liviu.dudau@arm.com \
--cc=steven.price@arm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.