summaryrefslogtreecommitdiffstats
path: root/main/xorg-server/modesetting-Set-correct-DRM-event-context-version.patch
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2017-05-23 17:43:36 +0200
committerNatanael Copa <ncopa@alpinelinux.org>2017-05-23 17:43:36 +0200
commit7a101754756b138e6f670e7b116d517efca4eff0 (patch)
tree2308a22c17e9dd37677298413849291c608c2006 /main/xorg-server/modesetting-Set-correct-DRM-event-context-version.patch
parentf8b617ef1b077d41b1f60d52d1eae2a4ad024df8 (diff)
main/xorg-server: add patch for modesetting
Diffstat (limited to 'main/xorg-server/modesetting-Set-correct-DRM-event-context-version.patch')
-rw-r--r--main/xorg-server/modesetting-Set-correct-DRM-event-context-version.patch38
1 files changed, 38 insertions, 0 deletions
diff --git a/main/xorg-server/modesetting-Set-correct-DRM-event-context-version.patch b/main/xorg-server/modesetting-Set-correct-DRM-event-context-version.patch
new file mode 100644
index 00000000000..51563fec59d
--- /dev/null
+++ b/main/xorg-server/modesetting-Set-correct-DRM-event-context-version.patch
@@ -0,0 +1,38 @@
+From 0c8e6ed85810e96d84173a52d628863802a78d82 Mon Sep 17 00:00:00 2001
+From: Daniel Stone <daniels@collabora.com>
+Date: Fri, 7 Apr 2017 14:27:58 +0100
+Subject: [PATCH] modesetting: Set correct DRM event context version
+
+DRM_EVENT_CONTEXT_VERSION is the latest context version supported by
+whatever version of libdrm is present. modesetting 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.
+
+Reviewed-by: Adam Jackson <ajax@redhat.com>
+Signed-off-by: Daniel Stone <daniels@collabora.com>
+---
+ hw/xfree86/drivers/modesetting/vblank.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/hw/xfree86/drivers/modesetting/vblank.c b/hw/xfree86/drivers/modesetting/vblank.c
+index 04a8952..8682f4d 100644
+--- a/hw/xfree86/drivers/modesetting/vblank.c
++++ b/hw/xfree86/drivers/modesetting/vblank.c
+@@ -402,7 +402,7 @@ ms_vblank_screen_init(ScreenPtr screen)
+ modesettingEntPtr ms_ent = ms_ent_priv(scrn);
+ xorg_list_init(&ms_drm_queue);
+
+- ms->event_context.version = DRM_EVENT_CONTEXT_VERSION;
++ ms->event_context.version = 2;
+ ms->event_context.vblank_handler = ms_drm_handler;
+ ms->event_context.page_flip_handler = ms_drm_handler;
+
+--
+2.12.2
+