On Wed, 15 Nov 2023 at 20:46, Dipam Turkar <dipamt1...@gmail.com> wrote: > > They are not outdated, my bad. I went through the locks' code and saw that > they have been updated. But they are probably not necessary here as most of > the drivers do not use any form of locking in their implementations. The > generic implementations drm_gem_dumb_map_offset() and > drm_gem_ttm_dumb_map_offset() do not have any locking mechanisms either.
Excuse me, but this doesn't sound right to me. There are different drivers with different implementations. So either we'd need a good explanation of why it is not necessary, or this patch is NAKed. > > Thanks and regards > Dipam Turkar > > On Wed, Nov 15, 2023 at 8:37 PM Dmitry Baryshkov > <dmitry.barysh...@linaro.org> wrote: >> >> On Wed, 15 Nov 2023 at 16:30, Dipam Turkar <dipamt1...@gmail.com> wrote: >> > >> > Make msm use drm_gem_create_map_offset() instead of its custom >> > implementation for associating GEM object with a fake offset. Since, >> > we already have this generic implementation, we don't need the custom >> > implementation and it is better to standardize the code for GEM based >> > drivers. This also removes the outdated locking leftovers. >> >> Why are they outdated? >> >> > >> > Signed-off-by: Dipam Turkar <dipamt1...@gmail.com> >> > --- >> > drivers/gpu/drm/msm/msm_drv.c | 2 +- >> > drivers/gpu/drm/msm/msm_gem.c | 21 --------------------- >> > drivers/gpu/drm/msm/msm_gem.h | 2 -- >> > 3 files changed, 1 insertion(+), 24 deletions(-) >> > >> > Changes in v2: >> > Modify commit message to include the absence of internal locking leftovers >> > around allocating a fake offset in msm_gem_mmap_offset() in the generic >> > implementation drm_gem_create_map_offset(). >> > >> > diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c >> > index a428951ee539..86a15992c717 100644 >> > --- a/drivers/gpu/drm/msm/msm_drv.c >> > +++ b/drivers/gpu/drm/msm/msm_drv.c >> > @@ -1085,7 +1085,7 @@ static const struct drm_driver msm_driver = { >> > .open = msm_open, >> > .postclose = msm_postclose, >> > .dumb_create = msm_gem_dumb_create, >> > - .dumb_map_offset = msm_gem_dumb_map_offset, >> > + .dumb_map_offset = drm_gem_dumb_map_offset, >> > .gem_prime_import_sg_table = msm_gem_prime_import_sg_table, >> > #ifdef CONFIG_DEBUG_FS >> > .debugfs_init = msm_debugfs_init, >> > diff --git a/drivers/gpu/drm/msm/msm_gem.c b/drivers/gpu/drm/msm/msm_gem.c >> > index db1e748daa75..489694ef79cb 100644 >> > --- a/drivers/gpu/drm/msm/msm_gem.c >> > +++ b/drivers/gpu/drm/msm/msm_gem.c >> > @@ -671,27 +671,6 @@ int msm_gem_dumb_create(struct drm_file *file, struct >> > drm_device *dev, >> > MSM_BO_SCANOUT | MSM_BO_WC, &args->handle, "dumb"); >> > } >> > >> > -int msm_gem_dumb_map_offset(struct drm_file *file, struct drm_device *dev, >> > - uint32_t handle, uint64_t *offset) >> > -{ >> > - struct drm_gem_object *obj; >> > - int ret = 0; >> > - >> > - /* GEM does all our handle to object mapping */ >> > - obj = drm_gem_object_lookup(file, handle); >> > - if (obj == NULL) { >> > - ret = -ENOENT; >> > - goto fail; >> > - } >> > - >> > - *offset = msm_gem_mmap_offset(obj); >> > - >> > - drm_gem_object_put(obj); >> > - >> > -fail: >> > - return ret; >> > -} >> > - >> > static void *get_vaddr(struct drm_gem_object *obj, unsigned madv) >> > { >> > struct msm_gem_object *msm_obj = to_msm_bo(obj); >> > diff --git a/drivers/gpu/drm/msm/msm_gem.h b/drivers/gpu/drm/msm/msm_gem.h >> > index 8ddef5443140..dc74a0ef865d 100644 >> > --- a/drivers/gpu/drm/msm/msm_gem.h >> > +++ b/drivers/gpu/drm/msm/msm_gem.h >> > @@ -139,8 +139,6 @@ struct page **msm_gem_pin_pages(struct drm_gem_object >> > *obj); >> > void msm_gem_unpin_pages(struct drm_gem_object *obj); >> > int msm_gem_dumb_create(struct drm_file *file, struct drm_device *dev, >> > struct drm_mode_create_dumb *args); >> > -int msm_gem_dumb_map_offset(struct drm_file *file, struct drm_device *dev, >> > - uint32_t handle, uint64_t *offset); >> > void *msm_gem_get_vaddr_locked(struct drm_gem_object *obj); >> > void *msm_gem_get_vaddr(struct drm_gem_object *obj); >> > void *msm_gem_get_vaddr_active(struct drm_gem_object *obj); >> > -- >> > 2.34.1 >> > >> >> >> -- >> With best wishes >> Dmitry -- With best wishes Dmitry