gpu/kms: Use correct DRM event context version

DRM_EVENT_CONTEXT_VERSION is the latest context version supported by
whatever version of libdrm is present. Mutter was blindly asserting it
supported whatever version that may be, even if it actually didn't.

With libdrm 2.4.78, setting a higher context version than 2 will attempt
to call the page_flip_handler2 vfunc if it was non-NULL, which being a
random chunk of stack memory, it might well have been.

Set the version as 2, which should be bumped only with the appropriate
version checks.

https://bugzilla.gnome.org/show_bug.cgi?id=781034
This commit is contained in:
Daniel Stone 2019-01-02 15:44:52 +01:00 committed by Jonas Ådahl
parent f7d4a727a8
commit 177d0c2d63

View File

@ -371,7 +371,7 @@ meta_gpu_kms_wait_for_flip (MetaGpuKms *gpu_kms,
}
memset (&evctx, 0, sizeof evctx);
evctx.version = DRM_EVENT_CONTEXT_VERSION;
evctx.version = 2;
evctx.page_flip_handler = page_flip_handler;
while (TRUE)