[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