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 <[email protected]> --- 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
