linux-stable/drivers/gpu/drm/qxl
Peter Wu 4d146d7268 qxl: fix null-pointer crash during suspend
[ Upstream commit 7948a2b158 ]

"crtc->helper_private" is not initialized by the QXL driver and thus the
"crtc_funcs->disable" call would crash (resulting in suspend failure).
Fix this by converting the suspend/resume functions to use the
drm_mode_config_helper_* helpers.

Tested system sleep with QEMU 3.0 using "echo mem > /sys/power/state".
During suspend the following message is visible from QEMU:

    spice/server/display-channel.c:2425:display_channel_validate_surface: canvas address is 0x7fd05da68308 for 0 (and is NULL)
    spice/server/display-channel.c:2426:display_channel_validate_surface: failed on 0

This seems to be triggered by QXL_IO_NOTIFY_CMD after
QXL_IO_DESTROY_PRIMARY_ASYNC, but aside from the warning things still
seem to work (tested with both the GTK and -spice options).

Signed-off-by: Peter Wu <peter@lekensteyn.nl>
Link: http://patchwork.freedesktop.org/patch/msgid/20180904202747.14968-1-peter@lekensteyn.nl
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2019-11-20 18:45:56 +01:00
..
Kconfig
Makefile
qxl_cmd.c Merge remote-tracking branch 'drm/drm-next' into drm-misc-next 2018-05-11 18:08:10 +02:00
qxl_debugfs.c
qxl_dev.h
qxl_display.c drm: drop _mode_ from drm_mode_connector_attach_encoder 2018-07-13 18:40:27 +02:00
qxl_draw.c
qxl_drv.c qxl: fix null-pointer crash during suspend 2019-11-20 18:45:56 +01:00
qxl_drv.h Merge remote-tracking branch 'drm/drm-next' into drm-misc-next 2018-05-11 18:08:10 +02:00
qxl_dumb.c drm/qxl: Replace drm_gem_object_reference/unreference() with _get/put() 2018-03-21 09:19:56 +01:00
qxl_fb.c treewide: Use array_size() in vmalloc() 2018-06-12 16:19:22 -07:00
qxl_gem.c drm/qxl: Replace drm_gem_object_reference/unreference() with _get/put() 2018-03-21 09:19:56 +01:00
qxl_image.c
qxl_ioctl.c qxl: fix qxl_release_{map,unmap} 2018-04-25 15:03:12 -04:00
qxl_irq.c qxl: remove qxl_io_log() 2018-04-27 08:58:04 +02:00
qxl_kms.c treewide: kmalloc() -> kmalloc_array() 2018-06-12 16:19:22 -07:00
qxl_object.c Merge airlied/drm-next into drm-misc-next 2018-03-21 09:40:55 -04:00
qxl_object.h
qxl_prime.c
qxl_release.c drm/qxl: Remove unecessary dma_fence_ops 2018-07-03 13:13:56 +02:00
qxl_ttm.c gpu: drm: qxl: Adding new typedef vm_fault_t 2018-05-14 11:01:30 +02:00