virtio-gpu: wait for cursor updates finish
authorGerd Hoffmann <kraxel@redhat.com>
Tue, 15 Sep 2015 06:20:46 +0000 (08:20 +0200)
committerGerd Hoffmann <kraxel@redhat.com>
Fri, 16 Oct 2015 08:44:00 +0000 (10:44 +0200)
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
drivers/gpu/drm/virtio/virtgpu_display.c

index 4e160efc9402d4abeb1b40e8d8cd9f8a992d587b..c9c1427c361d536b4e9f0a117926843420b1e79c 100644 (file)
@@ -90,6 +90,14 @@ static int virtio_gpu_crtc_cursor_set(struct drm_crtc *crtc,
                                           cpu_to_le32(64),
                                           cpu_to_le32(64),
                                           0, 0, &fence);
+       ret = virtio_gpu_object_reserve(qobj, false);
+       if (!ret) {
+               reservation_object_add_excl_fence(qobj->tbo.resv,
+                                                 &fence->f);
+               fence_put(&fence->f);
+               virtio_gpu_object_unreserve(qobj);
+               virtio_gpu_object_wait(qobj, false);
+       }
 
        output->cursor.hdr.type = cpu_to_le32(VIRTIO_GPU_CMD_UPDATE_CURSOR);
        output->cursor.resource_id = cpu_to_le32(qobj->hw_res_handle);