diff options
Diffstat (limited to 'drivers/gpu/drm/virtio/virtgpu_gem.c')
| -rw-r--r-- | drivers/gpu/drm/virtio/virtgpu_gem.c | 12 | 
1 files changed, 11 insertions, 1 deletions
diff --git a/drivers/gpu/drm/virtio/virtgpu_gem.c b/drivers/gpu/drm/virtio/virtgpu_gem.c index 48d3c9955f0d..580a78809836 100644 --- a/drivers/gpu/drm/virtio/virtgpu_gem.c +++ b/drivers/gpu/drm/virtio/virtgpu_gem.c @@ -214,6 +214,7 @@ void virtio_gpu_array_add_obj(struct virtio_gpu_object_array *objs,  int virtio_gpu_array_lock_resv(struct virtio_gpu_object_array *objs)  { +	unsigned int i;  	int ret;  	if (objs->nents == 1) { @@ -222,6 +223,14 @@ int virtio_gpu_array_lock_resv(struct virtio_gpu_object_array *objs)  		ret = drm_gem_lock_reservations(objs->objs, objs->nents,  						&objs->ticket);  	} +	if (ret) +		return ret; + +	for (i = 0; i < objs->nents; ++i) { +		ret = dma_resv_reserve_fences(objs->objs[i]->resv, 1); +		if (ret) +			return ret; +	}  	return ret;  } @@ -241,7 +250,8 @@ void virtio_gpu_array_add_fence(struct virtio_gpu_object_array *objs,  	int i;  	for (i = 0; i < objs->nents; i++) -		dma_resv_add_excl_fence(objs->objs[i]->resv, fence); +		dma_resv_add_fence(objs->objs[i]->resv, fence, +				   DMA_RESV_USAGE_WRITE);  }  void virtio_gpu_array_put_free(struct virtio_gpu_object_array *objs)  |