summary refs log tree commit diff
diff options
context:
space:
mode:
authorGerd Hoffmann <kraxel@redhat.com>2021-02-04 15:57:08 +0100
committerGerd Hoffmann <kraxel@redhat.com>2021-02-05 08:52:40 +0100
commita7709b9b89a67f3ead2d188b1d0c261059b1f291 (patch)
tree7e02b60a207d38b502257c552cf0ff0657729fe8
parent76aefa4d274a003a6b6d1ab8b76cfa7b82549356 (diff)
downloadlinux-a7709b9b89a67f3ead2d188b1d0c261059b1f291.tar.gz
drm/qxl: handle shadow in primary destroy
qxl_primary_atomic_disable must check whenever the framebuffer bo has a
shadow surface and in case it has check the shadow primary status.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Acked-by: Thomas Zimmermann <tzimmermann@suse.de>
Link: http://patchwork.freedesktop.org/patch/msgid/20210204145712.1531203-8-kraxel@redhat.com
-rw-r--r--drivers/gpu/drm/qxl/qxl_display.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/gpu/drm/qxl/qxl_display.c b/drivers/gpu/drm/qxl/qxl_display.c
index d25fd3acc891..c326412136c5 100644
--- a/drivers/gpu/drm/qxl/qxl_display.c
+++ b/drivers/gpu/drm/qxl/qxl_display.c
@@ -562,6 +562,8 @@ static void qxl_primary_atomic_disable(struct drm_plane *plane,
 	if (old_state->fb) {
 		struct qxl_bo *bo = gem_to_qxl_bo(old_state->fb->obj[0]);
 
+		if (bo->shadow)
+			bo = bo->shadow;
 		if (bo->is_primary) {
 			qxl_io_destroy_primary(qdev);
 			bo->is_primary = false;