[PATCH 03/27] drm/etnaviv: add lockdep annotation for userptr object population

Christian Gmeiner christian.gmeiner at gmail.com
Mon Dec 11 10:46:27 UTC 2017


2017-12-01 11:36 GMT+01:00 Lucas Stach <l.stach at pengutronix.de>:
> The current userptr page population will defer work to a work item if
> needed to avoid ever taking the mmap_sem in the direct call path. With
> the more fine-grained locking in etnaviv this isn't needed anymore, so
> a future commit will simplify this code.
>
> Add a lockdep annotation to validate the assumption that the mmap_sem
> can be taken in the direct call path.
>
> Signed-off-by: Lucas Stach <l.stach at pengutronix.de>

Reviewed-by: Christian Gmeiner <christian.gmeiner at gmail.com>

> ---
>  drivers/gpu/drm/etnaviv/etnaviv_gem.c | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/drivers/gpu/drm/etnaviv/etnaviv_gem.c b/drivers/gpu/drm/etnaviv/etnaviv_gem.c
> index e3582507963d..555a331c51a9 100644
> --- a/drivers/gpu/drm/etnaviv/etnaviv_gem.c
> +++ b/drivers/gpu/drm/etnaviv/etnaviv_gem.c
> @@ -804,6 +804,8 @@ static int etnaviv_gem_userptr_get_pages(struct etnaviv_gem_object *etnaviv_obj)
>         struct mm_struct *mm;
>         int ret, pinned, npages = etnaviv_obj->base.size >> PAGE_SHIFT;
>
> +       might_lock_read(&current->mm->mmap_sem);
> +
>         if (etnaviv_obj->userptr.work) {
>                 if (IS_ERR(etnaviv_obj->userptr.work)) {
>                         ret = PTR_ERR(etnaviv_obj->userptr.work);
> --
> 2.11.0
>



-- 
greets
--
Christian Gmeiner, MSc

https://christian-gmeiner.info


More information about the dri-devel mailing list