[PATCH] Fix crash when page flipping in multi-X-Screen/Zaphod mode

Michel Dänzer michel at daenzer.net
Tue Dec 18 14:42:36 UTC 2018


On 2018-12-18 11:40 a.m., Mario Kleiner wrote:
> radeon_do_pageflip() indexed the flipdata->fb[] array
> indexing over config->num_crtc, but the flip completion
> routines, e.g., drmmode_flip_handler(), index that array
> via the crtc hw id from drmmode_get_crtc_id(crtc).
> 
> This is mismatched and causes indexing into the wrong
> array slot at flip completion -> Server crash.
> 
> Always use drmmode_get_crtc_id(crtc) for indexing into
> the array to fix this.
> 
> Tested on a dual-X-Screen setup with one video output
> assigned to each X-Screen, page-flipping an OpenGL app
> on either of both X-Screens. This used to crash when
> flipping on X-Screen 1, now it doesn't anymore.
> 
> This patch needs to be ported to amdgpu-ddx as well,
> which suffers the same bug.
> 
> Signed-off-by: Mario Kleiner <mario.kleiner.de at gmail.com>

Good catch, thanks! Pushed with

Fixes: 740f0850f1e4 "Store FB for each CRTC in drmmode_flipdata_rec"
Reviewed-by: Michel Dänzer <michel.daenzer at amd.com>


Do you want to make an xf86-video-amdgpu merge request as well? If not,
I can take care of porting the fix. If you do it, please enable the
"Allow commits from members who can merge to the target branch" checkbox
for the MR.


-- 
Earthling Michel Dänzer               |               http://www.amd.com
Libre software enthusiast             |             Mesa and X developer


More information about the amd-gfx mailing list