Hi, Those are two alternative fixes for https://bugs.freedesktop.org/show_bug.cgi?id=108762 Either of them alone fixes the bug.
Brief description of the bug: Sometimes the screen-specific privates need to be accessed in CloseScreen, but their `initialized` flag is already FALSE which causes assertion failure. The flag has to be set to FALSE for them to get reinitialized after restart. It is set before CloseScreen, because after it some of the keys may be deallocated. More details in the bug. * dix: Track DevPrivateKey initialization by generation Instead of using boolean flag, use a number that is set to the server generation which initialized it => no need to reset it, it "resets" automatically when serverGeneration increments. Downside: changes the _DevPrivateKeyRec struct. * dix: Ignore initialized flag for screen-specific privates Never reset the `initialized` flag for screen-specific privates and never look at it. Instead search the list of already registered keys in `dixRegisterScreenSpecificPrivateKey` to determine if it was already registered. Michal Srb (1): dix: Ignore initialized flag for screen-specific privates dix: Track DevPrivateKey initialization by generation dix/privates.c | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) -- 2.16.4 _______________________________________________ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel