On 14/11/2025 18:11, Boris Brezillon wrote:
On Fri, 14 Nov 2025 18:02:57 +0100
Loïc Molinari <[email protected]> wrote:

Make use of the new drm_gem_huge_mnt_create() and
drm_gem_get_huge_mnt() helpers to avoid code duplication. Now that
it's just a few lines long, the single function in v3d_gemfs.c is
moved into v3d_gem.c.

v3:
- use huge tmpfs mountpoint in drm_device
- move v3d_gemfs.c into v3d_gem.c

v4:
- clean up mountpoint creation error handling

v5:
- fix CONFIG_TRANSPARENT_HUGEPAGE check
- use drm_gem_has_huge_mnt() helper

v8:
- don't access huge_mnt field with CONFIG_TRANSPARENT_HUGEPAGE=n

v9:
- replace drm_gem_has_huge_mnt() by drm_gem_get_huge_mnt()

Signed-off-by: Loïc Molinari <[email protected]>
---
  drivers/gpu/drm/v3d/Makefile    |  3 +-
  drivers/gpu/drm/v3d/v3d_bo.c    |  9 +++--
  drivers/gpu/drm/v3d/v3d_drv.c   |  2 +-
  drivers/gpu/drm/v3d/v3d_drv.h   | 11 +-----
  drivers/gpu/drm/v3d/v3d_gem.c   | 27 ++++++++++++--
  drivers/gpu/drm/v3d/v3d_gemfs.c | 62 ---------------------------------
  6 files changed, 34 insertions(+), 80 deletions(-)
  delete mode 100644 drivers/gpu/drm/v3d/v3d_gemfs.c

diff --git a/drivers/gpu/drm/v3d/Makefile b/drivers/gpu/drm/v3d/Makefile
index fcf710926057..b7d673f1153b 100644
--- a/drivers/gpu/drm/v3d/Makefile
+++ b/drivers/gpu/drm/v3d/Makefile
@@ -13,8 +13,7 @@ v3d-y := \
        v3d_trace_points.o \
        v3d_sched.o \
        v3d_sysfs.o \
-       v3d_submit.o \
-       v3d_gemfs.o
+       v3d_submit.o
v3d-$(CONFIG_DEBUG_FS) += v3d_debugfs.o diff --git a/drivers/gpu/drm/v3d/v3d_bo.c b/drivers/gpu/drm/v3d/v3d_bo.c
index d9547f5117b9..211578abf9b6 100644
--- a/drivers/gpu/drm/v3d/v3d_bo.c
+++ b/drivers/gpu/drm/v3d/v3d_bo.c
@@ -114,7 +114,7 @@ v3d_bo_create_finish(struct drm_gem_object *obj)
        if (IS_ERR(sgt))
                return PTR_ERR(sgt);
- if (!v3d->gemfs)
+       if (!drm_gem_get_huge_mnt(obj->dev))
                align = SZ_4K;
        else if (obj->size >= SZ_1M)
                align = SZ_1M;
@@ -150,12 +150,15 @@ struct v3d_bo *v3d_bo_create(struct drm_device *dev, 
struct drm_file *file_priv,
                             size_t unaligned_size)
  {
        struct drm_gem_shmem_object *shmem_obj;
-       struct v3d_dev *v3d = to_v3d_dev(dev);
        struct v3d_bo *bo;
        int ret;
+#ifdef CONFIG_TRANSPARENT_HUGEPAGE
        shmem_obj = drm_gem_shmem_create_with_mnt(dev, unaligned_size,
-                                                 v3d->gemfs);
+                                                 dev->huge_mnt);
+#else
+       shmem_obj = drm_gem_shmem_create(dev, unaligned_size);
+#endif

Why not drop the ifdef and go for

        shmem_obj = drm_gem_shmem_create_with_mnt(dev,
                                                  unaligned_size,
                                                  
drm_gem_get_huge_mnt(obj->dev));

?

Oops, I overlooked that one.


        if (IS_ERR(shmem_obj))
                return ERR_CAST(shmem_obj);
        bo = to_v3d_bo(&shmem_obj->base);

Reply via email to