Commit 23c45e8e authored by Francisco Jerez's avatar Francisco Jerez Committed by Ben Skeggs
Browse files

drm/nouveau: Fix sleep while atomic in nouveau_bo_fence().

parent 87a326a3
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -942,13 +942,17 @@ nouveau_ttm_fault_reserve_notify(struct ttm_buffer_object *bo)
void
nouveau_bo_fence(struct nouveau_bo *nvbo, struct nouveau_fence *fence)
{
	spin_lock(&nvbo->bo.bdev->fence_lock);
	__nouveau_fence_unref(&nvbo->bo.sync_obj);
	struct nouveau_fence *old_fence;

	if (likely(fence))
		nvbo->bo.sync_obj = nouveau_fence_ref(fence);
		nouveau_fence_ref(fence);

	spin_lock(&nvbo->bo.bdev->fence_lock);
	old_fence = nvbo->bo.sync_obj;
	nvbo->bo.sync_obj = fence;
	spin_unlock(&nvbo->bo.bdev->fence_lock);

	nouveau_fence_unref(&old_fence);
}

struct ttm_bo_driver nouveau_bo_driver = {