[PATCH 07/13] drm/exynos: drop struct_mutex from exynos_gem_map_sgt_with_dma

Emil Velikov emil.l.velikov at gmail.com
Wed Mar 30 10:23:47 UTC 2016


On 30 March 2016 at 10:40, Daniel Vetter <daniel.vetter at ffwll.ch> wrote:
> The sg table isn't refcounted, there's no corresponding locking for
> unmapping and drm_map_sg is ok with being called concurrently.
>
> So drop the locking since it doesn't protect anything.
>
> Cc: Inki Dae <inki.dae at samsung.com>
> Signed-off-by: Daniel Vetter <daniel.vetter at intel.com>
> ---
>  drivers/gpu/drm/exynos/exynos_drm_gem.c | 4 ----
>  1 file changed, 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_gem.c b/drivers/gpu/drm/exynos/exynos_drm_gem.c
> index 3b7209335df0..60b9975bb0b1 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_gem.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_gem.c
> @@ -388,16 +388,12 @@ int exynos_gem_map_sgt_with_dma(struct drm_device *drm_dev,
>  {
>         int nents;
>
> -       mutex_lock(&drm_dev->struct_mutex);
> -
>         nents = dma_map_sg(to_dma_dev(drm_dev), sgt->sgl, sgt->nents, dir);
>         if (!nents) {
>                 DRM_ERROR("failed to map sgl with dma.\n");
> -               mutex_unlock(&drm_dev->struct_mutex);
>                 return nents;
>         }
>
> -       mutex_unlock(&drm_dev->struct_mutex);
>         return 0;
Either my coffee hasn't kicked in or we have a preexisting bug. Namely
- we are returning 0, regardless if we hit the above error ? If that's
intentional shouldn't there be a comment explaining why ?

-Emil


More information about the dri-devel mailing list