Deleted Added
full compact
32c32
< __FBSDID("$FreeBSD: head/sys/dev/drm2/ttm/ttm_bo_util.c 247835 2013-03-05 09:49:34Z kib $");
---
> __FBSDID("$FreeBSD: stable/9/sys/dev/drm2/ttm/ttm_bo_util.c 262988 2014-03-10 23:16:19Z dumbbell $");
324c324,327
< if (ret)
---
> if (ret) {
> /* if we fail here don't nuke the mm node
> * as the bo still owns it */
> old_copy.mm_node = NULL;
325a329
> }
349c353,355
< if (ret)
---
> if (ret) {
> /* failing here, means keep old copy as-is */
> old_copy.mm_node = NULL;
350a357
> }
394,395c401,403
< static int ttm_buffer_object_transfer(struct ttm_buffer_object *bo,
< struct ttm_buffer_object **new_obj)
---
> static int
> ttm_buffer_object_transfer(struct ttm_buffer_object *bo,
> struct ttm_buffer_object **new_obj)
401c409
< fbo = malloc(sizeof(*fbo), M_TTM_TRANSF_OBJ, M_ZERO | M_WAITOK);
---
> fbo = malloc(sizeof(*fbo), M_TTM_TRANSF_OBJ, M_WAITOK);
416c424,429
< fbo->sync_obj = driver->sync_obj_ref(bo->sync_obj);
---
> mtx_lock(&bdev->fence_lock);
> if (bo->sync_obj)
> fbo->sync_obj = driver->sync_obj_ref(bo->sync_obj);
> else
> fbo->sync_obj = NULL;
> mtx_unlock(&bdev->fence_lock);
628,631c641,642
< set_bit(TTM_BO_PRIV_FLAG_MOVING, &bo->priv_flags);
<
< /* ttm_buffer_object_transfer accesses bo->sync_obj */
< ret = ttm_buffer_object_transfer(bo, &ghost_obj);
---
> atomic_set_long(&bo->priv_flags,
> 1UL << TTM_BO_PRIV_FLAG_MOVING);
635a647
> ret = ttm_buffer_object_transfer(bo, &ghost_obj);