update server autobind patch to fix crash reported on irc

This commit is contained in:
Dave Airlie 2012-09-25 16:26:02 +10:00
parent 25c4b40ffb
commit 8830e765dd
2 changed files with 19 additions and 12 deletions

View File

@ -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 <airlied@redhat.com> 1.13.0-6
- update server autobind patch to fix crash reported on irc
* Thu Sep 20 2012 Peter Hutterer <peter.hutterer@redhat.com> 1.13.0-5
- Set the transformation matrix to the unity matrix to avoid spurious cursor
jumps (#852841)

View File

@ -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 <airlied@redhat.com>
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) &&