Re: [PATCH] drm/ttm: Clear the ghost cpu_writers flag on ttm_buffer_object_transfer.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Sep 20, 2010 at 8:15 PM, Francisco Jerez <currojerez@xxxxxxxxxx> 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@xxxxxxxxx>
> Signed-off-by: Francisco Jerez <currojerez@xxxxxxxxxx>

Reviewed-by: Jerome Glisse <jglisse@xxxxxxxxxx>

> ---
>  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@xxxxxxxxxxxxxxxxxxxxx
> http://lists.freedesktop.org/mailman/listinfo/dri-devel
>
_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/dri-devel



[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux