aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--main/xorg-server/APKBUILD4
-rw-r--r--main/xorg-server/modesetting-Set-correct-DRM-event-context-version.patch38
2 files changed, 41 insertions, 1 deletions
diff --git a/main/xorg-server/APKBUILD b/main/xorg-server/APKBUILD
index 4defc2fbbc..f3923111a1 100644
--- a/main/xorg-server/APKBUILD
+++ b/main/xorg-server/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=xorg-server
pkgver=1.19.3
-pkgrel=1
+pkgrel=2
pkgdesc="X.Org X servers"
url="http://xorg.freedesktop.org"
arch="all"
@@ -81,6 +81,7 @@ source="http://xorg.freedesktop.org/releases/individual/xserver/$pkgname-$pkgver
autoconfig-nvidia.patch
autoconfig-sis.patch
fix-musl-arm.patch
+ modesetting-Set-correct-DRM-event-context-version.patch
20-modules.conf
"
@@ -194,4 +195,5 @@ sha512sums="b988897418399e1361fdcca9465a781f55f8f6fbfdc5a59edfaee9046a0c6ad7a76f
4dcaa60fbfc61636e7220a24a72bba19984a6dc752061cb40b1bd566c0e614d08927b6c223ffaaaa05636765fddacdc3113fde55d25fd09cd0c786ff44f51447 autoconfig-nvidia.patch
30a78f4278edd535c45ee3f80933427cb029a13abaa4b041f816515fdd8f64f00b9c6aef50d4eba2aaf0d4f333e730399864fd97fa18891273601c77a6637200 autoconfig-sis.patch
b799e757a22a61ac283adbd7a8df1ad4eccce0bb6cac38a0c962ba8438bba3cf6637a65bb64859e7b32399fca672283a49960207e186c271ba574580de360d09 fix-musl-arm.patch
+f66f11255aa8a98c89763cb213f08628c937cb13e7ab4bd399a246e0b630316343f35e191d92e55b0fa68e601c243220a3258bbfc5d50e74ccadfe6cb27310f5 modesetting-Set-correct-DRM-event-context-version.patch
95036f2452732cc31f6b646da9f46b7be30f4c9392724386b02f67fece1f506b00e15d14cbd8cf0ce75ca1fd144b4bea7e59288d4aaf4d6c1e06e5168931eb67 20-modules.conf"
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 0000000000..51563fec59
--- /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
+