[PATCH 06/16] drm/mgag200: Fix logic in mgag200_bo_pin()

Dave Airlie airlied at gmail.com
Mon Jul 22 22:38:23 PDT 2013


On Wed, Jul 17, 2013 at 11:07 PM, Egbert Eich <eich at suse.com> wrote:
> Signed-off-by: Egbert Eich <eich at suse.de>

Is this just missing a return 0; ? in the bo->pin_count > 0 case?
seems like a simpler patch.

Dave.

> ---
>  drivers/gpu/drm/mgag200/mgag200_ttm.c | 22 +++++++++-------------
>  1 file changed, 9 insertions(+), 13 deletions(-)
>
> diff --git a/drivers/gpu/drm/mgag200/mgag200_ttm.c b/drivers/gpu/drm/mgag200/mgag200_ttm.c
> index 6461fd2..2606031 100644
> --- a/drivers/gpu/drm/mgag200/mgag200_ttm.c
> +++ b/drivers/gpu/drm/mgag200/mgag200_ttm.c
> @@ -350,20 +350,16 @@ int mgag200_bo_pin(struct mgag200_bo *bo, u32 pl_flag, u64 *gpu_addr)
>  {
>         int i, ret;
>
> -       if (bo->pin_count) {
> -               bo->pin_count++;
> -               if (gpu_addr)
> -                       *gpu_addr = mgag200_bo_gpu_offset(bo);
> -       }
> -
> -       mgag200_ttm_placement(bo, pl_flag);
> -       for (i = 0; i < bo->placement.num_placement; i++)
> -               bo->placements[i] |= TTM_PL_FLAG_NO_EVICT;
> -       ret = ttm_bo_validate(&bo->bo, &bo->placement, false, false);
> -       if (ret)
> -               return ret;
>
> -       bo->pin_count = 1;
> +       if (!bo->pin_count) {
> +               mgag200_ttm_placement(bo, pl_flag);
> +               for (i = 0; i < bo->placement.num_placement; i++)
> +                       bo->placements[i] |= TTM_PL_FLAG_NO_EVICT;
> +               ret = ttm_bo_validate(&bo->bo, &bo->placement, false, false);
> +               if (ret)
> +                       return ret;
> +       }
> +       bo->pin_count++;
>         if (gpu_addr)
>                 *gpu_addr = mgag200_bo_gpu_offset(bo);
>         return 0;
> --
> 1.8.1.4
>
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel


More information about the dri-devel mailing list