On Mon, May 8, 2017 at 4:34 PM, Jordan Crouse <jcro...@codeaurora.org> wrote:
> Amongst its other duties, msm_gem_new_impl adds the newly created
> GEM object to the shared inactive list which may also be actively
> modifiying the list during submission.  All the paths to modify
> the list are protected by the mutex except for the one through
> msm_gem_import which can end up causing list corruption.

hmm, I guess it would be a good idea to also throw one of these into
msm_gem_new_impl():

    WARN_ON(!mutex_is_locked(&dev->struct_mutex));

BR,
-R

> Signed-off-by: Jordan Crouse <jcro...@codeaurora.org>
> ---
>  drivers/gpu/drm/msm/msm_gem.c | 4 ++++
>  1 file changed, 4 insertions(+)
>
> diff --git a/drivers/gpu/drm/msm/msm_gem.c b/drivers/gpu/drm/msm/msm_gem.c
> index 68e509b..7a82eaa 100644
> --- a/drivers/gpu/drm/msm/msm_gem.c
> +++ b/drivers/gpu/drm/msm/msm_gem.c
> @@ -853,7 +853,11 @@ struct drm_gem_object *msm_gem_import(struct drm_device 
> *dev,
>
>         size = PAGE_ALIGN(dmabuf->size);
>
> +       /* Take mutex so we can modify the inactive list in msm_gem_new_impl 
> */
> +       mutex_lock(&dev->struct_mutex);
>         ret = msm_gem_new_impl(dev, size, MSM_BO_WC, dmabuf->resv, &obj);
> +       mutex_unlock(&dev->struct_mutex);
> +
>         if (ret)
>                 goto fail;
>
> --
> 1.9.1
>
> _______________________________________________
> Freedreno mailing list
> Freedreno@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/freedreno
_______________________________________________
Freedreno mailing list
Freedreno@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/freedreno

Reply via email to