[PATCH] drm/ttm: Don't move non-existing data

Jakob Bornecrantz jakob at vmware.com
Mon Nov 18 03:38:08 PST 2013


----- Original Message -----
> If ttm_bo_move_memcpy was instructed to move a non-populated ttm to
> io memory, it would first populate the ttm, then move the data and then
> destroy the ttm. That's stupid. However, some drivers might have relied on
> this to clear io memory from old stuff. So instead of a NOP, which would
> be the most efficient, just clear the destination.
> 
> Signed-off-by: Thomas Hellstrom <thellstrom at vmware.com>

Reviewed-by: Jakob Bornecrantz <jakob at vmware.com>

Cheers, Jakob.

> ---
>  drivers/gpu/drm/ttm/ttm_bo_util.c |    7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/ttm/ttm_bo_util.c
> b/drivers/gpu/drm/ttm/ttm_bo_util.c
> index 4834c46..15b86a9 100644
> --- a/drivers/gpu/drm/ttm/ttm_bo_util.c
> +++ b/drivers/gpu/drm/ttm/ttm_bo_util.c
> @@ -350,10 +350,13 @@ int ttm_bo_move_memcpy(struct ttm_buffer_object *bo,
>  		goto out2;
>  
>  	/*
> -	 * Move nonexistent data. NOP.
> +	 * Don't move nonexistent data. Clear destination instead.
>  	 */
> -	if (old_iomap == NULL && ttm == NULL)
> +	if (old_iomap == NULL &&
> +	    (ttm == NULL || ttm->state == tt_unpopulated)) {
> +		memset_io(new_iomap, 0, new_mem->num_pages*PAGE_SIZE);
>  		goto out2;
> +	}
>  
>  	/*
>  	 * TTM might be null for moves within the same region.
> --
> 1.7.10.4
> 


More information about the dri-devel mailing list