[xorg-x11-server/f18] update server autobind patch to fix crash reported on irc

Dave Airlie airlied at fedoraproject.org
Tue Sep 25 06:27:35 UTC 2012


commit 8830e765dde1008af4b014cded7c7fd590a50857
Author: Dave Airlie <airlied at redhat.com>
Date:   Tue Sep 25 16:26:02 2012 +1000

    update server autobind patch to fix crash reported on irc

 xorg-x11-server.spec           |    5 ++++-
 xserver-autobind-hotplug.patch |   26 +++++++++++++++-----------
 2 files changed, 19 insertions(+), 12 deletions(-)
---
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 <airlied at redhat.com> 1.13.0-6
+- update server autobind patch to fix crash reported on irc
+
 * Thu Sep 20 2012 Peter Hutterer <peter.hutterer at redhat.com> 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 <airlied at 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) &&


More information about the scm-commits mailing list