Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/virtio: drop virtio_gpu_fence_cleanup()

Just call drm_fence_put directly instead.
Also set vgfb->fence to NULL after dropping the reference.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Ezequiel Garcia <ezequiel@collabora.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20181219122708.4586-4-kraxel@redhat.com

+5 -12
-1
drivers/gpu/drm/virtio/virtgpu_drv.h
··· 337 337 /* virtio_gpu_fence.c */ 338 338 struct virtio_gpu_fence *virtio_gpu_fence_alloc( 339 339 struct virtio_gpu_device *vgdev); 340 - void virtio_gpu_fence_cleanup(struct virtio_gpu_fence *fence); 341 340 int virtio_gpu_fence_emit(struct virtio_gpu_device *vgdev, 342 341 struct virtio_gpu_ctrl_hdr *cmd_hdr, 343 342 struct virtio_gpu_fence *fence);
-8
drivers/gpu/drm/virtio/virtgpu_fence.c
··· 81 81 return fence; 82 82 } 83 83 84 - void virtio_gpu_fence_cleanup(struct virtio_gpu_fence *fence) 85 - { 86 - if (!fence) 87 - return; 88 - 89 - dma_fence_put(&fence->f); 90 - } 91 - 92 84 int virtio_gpu_fence_emit(struct virtio_gpu_device *vgdev, 93 85 struct virtio_gpu_ctrl_hdr *cmd_hdr, 94 86 struct virtio_gpu_fence *fence)
+1 -1
drivers/gpu/drm/virtio/virtgpu_ioctl.c
··· 351 351 virtio_gpu_cmd_resource_create_3d(vgdev, qobj, &rc_3d); 352 352 ret = virtio_gpu_object_attach(vgdev, qobj, fence); 353 353 if (ret) { 354 - virtio_gpu_fence_cleanup(fence); 354 + dma_fence_put(&fence->f); 355 355 goto fail_backoff; 356 356 } 357 357 ttm_eu_fence_buffer_objects(&ticket, &validate_list, &fence->f);
+4 -2
drivers/gpu/drm/virtio/virtgpu_plane.c
··· 169 169 return; 170 170 171 171 vgfb = to_virtio_gpu_framebuffer(plane->state->fb); 172 - if (vgfb->fence) 173 - virtio_gpu_fence_cleanup(vgfb->fence); 172 + if (vgfb->fence) { 173 + dma_fence_put(&vgfb->fence->f); 174 + vgfb->fence = NULL; 175 + } 174 176 } 175 177 176 178 static void virtio_gpu_cursor_plane_update(struct drm_plane *plane,