diff --git a/xorg-x11-server.spec b/xorg-x11-server.spec index 4a671e2..8504f50 100644 --- a/xorg-x11-server.spec +++ b/xorg-x11-server.spec @@ -43,7 +43,7 @@ Summary: X.Org X11 X server Name: xorg-x11-server Version: 1.13.0 -Release: 5%{?gitdate:.%{gitdate}}%{dist} +Release: 6%{?gitdate:.%{gitdate}}%{dist} URL: http://www.x.org License: MIT Group: User Interface/X @@ -591,6 +591,9 @@ rm -rf $RPM_BUILD_ROOT %{xserver_source_dir} %changelog +* Tue Sep 25 2012 Dave Airlie 1.13.0-6 +- update server autobind patch to fix crash reported on irc + * Thu Sep 20 2012 Peter Hutterer 1.13.0-5 - Set the transformation matrix to the unity matrix to avoid spurious cursor jumps (#852841) diff --git a/xserver-autobind-hotplug.patch b/xserver-autobind-hotplug.patch index 904ac33..7d05f27 100644 --- a/xserver-autobind-hotplug.patch +++ b/xserver-autobind-hotplug.patch @@ -1,20 +1,21 @@ -From d1acbfaea440fde47c5bd2b731b38c5ee722cded Mon Sep 17 00:00:00 2001 +From 536626891b60039c0f3f9b4cd96156e9fe810f39 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Fri, 17 Aug 2012 09:49:24 +1000 -Subject: [PATCH] autobind GPUs to the screen, +Subject: [PATCH] autobind GPUs to the screen, (v2) this is racy and really not what we want for hotplug going forward, but until DE support is in GNOME its probably for the best. +v2: fix if config or slave config is NULL DO NOT UPSTREAM. --- hw/xfree86/common/xf86Init.c | 12 ++++++++++++ hw/xfree86/common/xf86platformBus.c | 3 +++ - hw/xfree86/modes/xf86Crtc.c | 25 +++++++++++++++++++++++++ - 3 files changed, 40 insertions(+) + hw/xfree86/modes/xf86Crtc.c | 28 ++++++++++++++++++++++++++++ + 3 files changed, 43 insertions(+) diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c -index e4a6b86..a79aeb5 100644 +index d231ced..89629c1 100644 --- a/hw/xfree86/common/xf86Init.c +++ b/hw/xfree86/common/xf86Init.c @@ -361,6 +361,16 @@ xf86CreateRootWindow(WindowPtr pWin) @@ -34,7 +35,7 @@ index e4a6b86..a79aeb5 100644 static void InstallSignalHandlers(void) { -@@ -927,6 +937,8 @@ InitOutput(ScreenInfo * pScreenInfo, int argc, char **argv) +@@ -926,6 +936,8 @@ InitOutput(ScreenInfo * pScreenInfo, int argc, char **argv) for (i = 0; i < xf86NumGPUScreens; i++) AttachUnboundGPU(xf86Screens[0]->pScreen, xf86GPUScreens[i]->pScreen); @@ -44,10 +45,10 @@ index e4a6b86..a79aeb5 100644 if (sigio_blocked) OsReleaseSIGIO(); diff --git a/hw/xfree86/common/xf86platformBus.c b/hw/xfree86/common/xf86platformBus.c -index 24b9473..502d3c4 100644 +index a73aea2..3810076 100644 --- a/hw/xfree86/common/xf86platformBus.c +++ b/hw/xfree86/common/xf86platformBus.c -@@ -383,6 +383,8 @@ xf86platformProbeDev(DriverPtr drvp) +@@ -387,6 +387,8 @@ xf86platformProbeDev(DriverPtr drvp) return foundScreen; } @@ -56,7 +57,7 @@ index 24b9473..502d3c4 100644 int xf86platformAddDevice(int index) { -@@ -442,6 +444,7 @@ xf86platformAddDevice(int index) +@@ -446,6 +448,7 @@ xf86platformAddDevice(int index) /* attach unbound to 0 protocol screen */ AttachUnboundGPU(xf86Screens[0]->pScreen, xf86GPUScreens[i]->pScreen); @@ -65,10 +66,10 @@ index 24b9473..502d3c4 100644 return 0; } diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c -index 1947c5b..153c795 100644 +index 8f05c53..ba84e6b 100644 --- a/hw/xfree86/modes/xf86Crtc.c +++ b/hw/xfree86/modes/xf86Crtc.c -@@ -3260,3 +3260,28 @@ xf86DetachAllCrtc(ScrnInfoPtr scrn) +@@ -3321,3 +3321,31 @@ xf86DetachAllCrtc(ScrnInfoPtr scrn) crtc->x = crtc->y = 0; } } @@ -80,6 +81,9 @@ index 1947c5b..153c795 100644 + xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(master); + xf86CrtcConfigPtr slave_config = XF86_CRTC_CONFIG_PTR(pScrn); + ++ if (!config || !slave_config) ++ return; ++ + master_provider = config->randr_provider; + + if ((master->capabilities & RR_Capability_SinkOffload) &&