mirror of
https://github.com/X11Libre/xf86-video-ati.git
synced 2026-03-24 01:24:43 +00:00
Wait for pending scanout update before calling drmmode_crtc_scanout_free
There is a case that when set screen from reverse to normal, the old scanout damage is freed in modesetting before scanout update handler, so it causes segment fault issue. Signed-off-by: Jim Qu <Jim.Qu@amd.com> [ Michel Dänzer: Only call drmmode_crtc_wait_pending_event before drmmode_crtc_scanout_free is actually called, slightly tweak commit message ] Signed-off-by: Michel Dänzer <michel.daenzer@amd.com> (Ported from amdgpu commit 9f6a8905611b5b1d8fcd31bebbc9af7ca1355cc3) Acked-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
@@ -985,9 +985,11 @@ done:
|
||||
|
||||
if (drmmode_crtc->scanout[scanout_id].pixmap &&
|
||||
fb != radeon_pixmap_get_fb(drmmode_crtc->
|
||||
scanout[scanout_id].pixmap))
|
||||
scanout[scanout_id].pixmap)) {
|
||||
drmmode_crtc_wait_pending_event(drmmode_crtc, pRADEONEnt->fd,
|
||||
drmmode_crtc->scanout_update_pending);
|
||||
drmmode_crtc_scanout_free(drmmode_crtc);
|
||||
else if (!drmmode_crtc->tear_free) {
|
||||
} else if (!drmmode_crtc->tear_free) {
|
||||
drmmode_crtc_scanout_destroy(drmmode,
|
||||
&drmmode_crtc->scanout[1]);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user