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