[PATCH] drm/loongson: Replace custom dumb_map_offset with generic helper

Swaraj Gaikwad posted 1 patch 1 day, 2 hours ago
drivers/gpu/drm/loongson/lsdc_drv.c |  2 +-
drivers/gpu/drm/loongson/lsdc_gem.c | 16 ----------------
drivers/gpu/drm/loongson/lsdc_gem.h |  5 -----
3 files changed, 1 insertion(+), 22 deletions(-)
[PATCH] drm/loongson: Replace custom dumb_map_offset with generic helper
Posted by Swaraj Gaikwad 1 day, 2 hours ago
The lsdc driver implements a custom dumb_map_offset callback which is
functionally equivalent to the generic drm_gem_dumb_map_offset helper,
but lacks standard safety checks.

The generic helper adds:
1. A check to prevent mapping of imported objects (which is invalid for
   dumb buffers).
2. A call to drm_gem_create_mmap_offset() to ensure the offset is
   correctly allocated before access.

Replace the custom implementation with the generic helper and remove
the now unused lsdc_dumb_map_offset() function.

This addresses the TODO:
"Documentation/gpu/todo.rst: Remove custom dumb_map_offset implementations"

Signed-off-by: Swaraj Gaikwad <swarajgaikwad1925@gmail.com>
---

Compile-tested only.

 drivers/gpu/drm/loongson/lsdc_drv.c |  2 +-
 drivers/gpu/drm/loongson/lsdc_gem.c | 16 ----------------
 drivers/gpu/drm/loongson/lsdc_gem.h |  5 -----
 3 files changed, 1 insertion(+), 22 deletions(-)

diff --git a/drivers/gpu/drm/loongson/lsdc_drv.c b/drivers/gpu/drm/loongson/lsdc_drv.c
index abf5bf68eec2..50023b5573a4 100644
--- a/drivers/gpu/drm/loongson/lsdc_drv.c
+++ b/drivers/gpu/drm/loongson/lsdc_drv.c
@@ -45,7 +45,7 @@ static const struct drm_driver lsdc_drm_driver = {

 	.debugfs_init = lsdc_debugfs_init,
 	.dumb_create = lsdc_dumb_create,
-	.dumb_map_offset = lsdc_dumb_map_offset,
+	.dumb_map_offset = drm_gem_dumb_map_offset,
 	.gem_prime_import_sg_table = lsdc_prime_import_sg_table,
 	DRM_FBDEV_TTM_DRIVER_OPS,
 };
diff --git a/drivers/gpu/drm/loongson/lsdc_gem.c b/drivers/gpu/drm/loongson/lsdc_gem.c
index 6372db2d3093..9f956e63cce3 100644
--- a/drivers/gpu/drm/loongson/lsdc_gem.c
+++ b/drivers/gpu/drm/loongson/lsdc_gem.c
@@ -234,22 +234,6 @@ int lsdc_dumb_create(struct drm_file *file, struct drm_device *ddev,
 	return 0;
 }

-int lsdc_dumb_map_offset(struct drm_file *filp, struct drm_device *ddev,
-			 u32 handle, uint64_t *offset)
-{
-	struct drm_gem_object *gobj;
-
-	gobj = drm_gem_object_lookup(filp, handle);
-	if (!gobj)
-		return -ENOENT;
-
-	*offset = drm_vma_node_offset_addr(&gobj->vma_node);
-
-	drm_gem_object_put(gobj);
-
-	return 0;
-}
-
 void lsdc_gem_init(struct drm_device *ddev)
 {
 	struct lsdc_device *ldev = to_lsdc(ddev);
diff --git a/drivers/gpu/drm/loongson/lsdc_gem.h b/drivers/gpu/drm/loongson/lsdc_gem.h
index 92cbb10e6e13..f79f06874286 100644
--- a/drivers/gpu/drm/loongson/lsdc_gem.h
+++ b/drivers/gpu/drm/loongson/lsdc_gem.h
@@ -14,11 +14,6 @@ lsdc_prime_import_sg_table(struct drm_device *ddev,
 			   struct dma_buf_attachment *attach,
 			   struct sg_table *sg);

-int lsdc_dumb_map_offset(struct drm_file *file,
-			 struct drm_device *dev,
-			 u32 handle,
-			 uint64_t *offset);
-
 int lsdc_dumb_create(struct drm_file *file,
 		     struct drm_device *ddev,
 		     struct drm_mode_create_dumb *args);

base-commit: a859eca0e4cc96f63ff125dbe5388d961558b0e9
prerequisite-patch-id: 84f019e50f016ed5c37c15cb809158ab022686be
--
2.52.0