drm/virtio: Use appropriate atomic state in virtio_gpu_plane_cleanup_fb()
authorDmitry Osipenko <dmitry.osipenko@collabora.com>
Thu, 30 Jun 2022 20:07:22 +0000 (23:07 +0300)
committerGerd Hoffmann <kraxel@redhat.com>
Tue, 19 Jul 2022 12:40:58 +0000 (14:40 +0200)
Make virtio_gpu_plane_cleanup_fb() to clean the state which DRM core
wants to clean up and not the current plane's state. Normally the older
atomic state is cleaned up, but the newer state could also be cleaned up
in case of aborted commits.

Cc: stable@vger.kernel.org
Signed-off-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20220630200726.1884320-6-dmitry.osipenko@collabora.com
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
drivers/gpu/drm/virtio/virtgpu_plane.c

index 6d3cc9e238a4ad2348215933190a293d819a617e..7148f3813d8bdedbcf4cbb5f3cab0c4f363f0fdc 100644 (file)
@@ -266,14 +266,14 @@ static int virtio_gpu_plane_prepare_fb(struct drm_plane *plane,
 }
 
 static void virtio_gpu_plane_cleanup_fb(struct drm_plane *plane,
-                                       struct drm_plane_state *old_state)
+                                       struct drm_plane_state *state)
 {
        struct virtio_gpu_framebuffer *vgfb;
 
-       if (!plane->state->fb)
+       if (!state->fb)
                return;
 
-       vgfb = to_virtio_gpu_framebuffer(plane->state->fb);
+       vgfb = to_virtio_gpu_framebuffer(state->fb);
        if (vgfb->fence) {
                dma_fence_put(&vgfb->fence->f);
                vgfb->fence = NULL;