From 734458b7620161c07acb801a396d0a4837bcdbd9 Mon Sep 17 00:00:00 2001 From: Thomas Zimmermann Date: Tue, 13 Jun 2023 16:51:32 +0200 Subject: [PATCH] drm/msm: Initialize mmap offset after constructing the buffer object Only the msm driver provides its own implementation of gem_prime_mmap from struct drm_driver. All other drivers use the drm_gem_prime_mmap() helper. Initialize the mmap offset when constructing the buffer object in msm and reduce the gem_prime_mmap code to the generic helper. Prepares msm for the removal of struct drm_driver.gem_prime_mmap. Signed-off-by: Thomas Zimmermann Reviewed-by: Alex Deucher Link: https://patchwork.freedesktop.org/patch/msgid/20230613150441.17720-2-tzimmermann@suse.de --- drivers/gpu/drm/msm/msm_gem.c | 8 ++++++++ drivers/gpu/drm/msm/msm_gem_prime.c | 10 ---------- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/drivers/gpu/drm/msm/msm_gem.c b/drivers/gpu/drm/msm/msm_gem.c index c32264234ea1..649688b5a840 100644 --- a/drivers/gpu/drm/msm/msm_gem.c +++ b/drivers/gpu/drm/msm/msm_gem.c @@ -1240,6 +1240,10 @@ struct drm_gem_object *msm_gem_new(struct drm_device *dev, uint32_t size, uint32 list_add_tail(&msm_obj->node, &priv->objects); mutex_unlock(&priv->obj_lock); + ret = drm_gem_create_mmap_offset(obj); + if (ret) + goto fail; + return obj; fail: @@ -1296,6 +1300,10 @@ struct drm_gem_object *msm_gem_import(struct drm_device *dev, list_add_tail(&msm_obj->node, &priv->objects); mutex_unlock(&priv->obj_lock); + ret = drm_gem_create_mmap_offset(obj); + if (ret) + goto fail; + return obj; fail: diff --git a/drivers/gpu/drm/msm/msm_gem_prime.c b/drivers/gpu/drm/msm/msm_gem_prime.c index c1d91863df05..2c846afe049e 100644 --- a/drivers/gpu/drm/msm/msm_gem_prime.c +++ b/drivers/gpu/drm/msm/msm_gem_prime.c @@ -13,16 +13,6 @@ int msm_gem_prime_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma) { - int ret; - - /* Ensure the mmap offset is initialized. We lazily initialize it, - * so if it has not been first mmap'd directly as a GEM object, the - * mmap offset will not be already initialized. - */ - ret = drm_gem_create_mmap_offset(obj); - if (ret) - return ret; - return drm_gem_prime_mmap(obj, vma); } -- 2.39.5