diff options
author | Michel Dänzer <michel.daenzer@amd.com> | 2018-03-05 18:41:44 +0100 |
---|---|---|
committer | Michel Dänzer <michel@daenzer.net> | 2018-03-05 18:41:44 +0100 |
commit | 504b8721b17a672caf1ed3eab087027c02458cab (patch) | |
tree | 5080a54013b144215799a6b30271a2e97e96eaef /conf | |
parent | e0d23092337efe4c1e406c9124ca8d8856863e65 (diff) |
Only change Set/MoveCursor hooks from what we expect
Since xf86CursorCloseScreen runs after RADEONCloseScreen_KMS,
PointPriv->spriteFuncs doesn't point to the same struct in the latter as
in RADEONCursorInit_KMS. So we were restoring info->Set/MoveCursor to
the wrong struct. Then in the next server generation,
info->Set/MoveCursor would end up pointing to
drmmode_sprite_set/move_cursor, resulting in an infinite loop if one of
them was called.
To avoid this, only change the Set/MoveCursor hooks if their values
match our expectations, otherwise leave them as is. This is kind of a
hack, but the alternative would be invasive and thus risky changes to
the way we're wrapping CloseScreen, and it's not even clear that can
work without changing xserver code.
Fixes: 1fe8ca75974c ("Keep track of how many SW cursors are visible on
each screen")
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'conf')
0 files changed, 0 insertions, 0 deletions