[PATCH] drm/ttm: Clear the ghost cpu_writers flag on ttm_buffer_object_transfer.
Jerome Glisse
j.glisse at gmail.com
Tue Sep 21 08:32:26 PDT 2010
On Mon, Sep 20, 2010 at 8:15 PM, Francisco Jerez <currojerez at riseup.net> wrote:
> It makes sense for a BO to move after a process has requested
> exclusive RW access on it (e.g. because the BO used to be located in
> unmappable VRAM and we intercepted the CPU access from the fault
> handler).
>
> If we let the ghost object inherit cpu_writers from the original
> object, ttm_bo_release_list() will raise a kernel BUG when the ghost
> object is destroyed. This can be reproduced with the nouveau driver on
> nv5x.
>
> Reported-by: Marcin Slusarz <marcin.slusarz at gmail.com>
> Signed-off-by: Francisco Jerez <currojerez at riseup.net>
Reviewed-by: Jerome Glisse <jglisse at redhat.com>
> ---
> drivers/gpu/drm/ttm/ttm_bo_util.c | 1 +
> 1 files changed, 1 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/gpu/drm/ttm/ttm_bo_util.c b/drivers/gpu/drm/ttm/ttm_bo_util.c
> index 7cffb3e..3451a82 100644
> --- a/drivers/gpu/drm/ttm/ttm_bo_util.c
> +++ b/drivers/gpu/drm/ttm/ttm_bo_util.c
> @@ -351,6 +351,7 @@ static int ttm_buffer_object_transfer(struct ttm_buffer_object *bo,
> INIT_LIST_HEAD(&fbo->lru);
> INIT_LIST_HEAD(&fbo->swap);
> fbo->vm_node = NULL;
> + atomic_set(&fbo->cpu_writers, 0);
>
> fbo->sync_obj = driver->sync_obj_ref(bo->sync_obj);
> kref_init(&fbo->list_kref);
> --
> 1.6.4.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