[xorg-x11-server] fix hotplug issue with usb devices and large screens
Dave Airlie
airlied at fedoraproject.org
Wed Dec 12 04:27:21 UTC 2012
commit 0239e8727ad434e639587e7944288e3ef5d4390c
Author: Dave Airlie <airlied at redhat.com>
Date: Wed Dec 12 14:26:33 2012 +1000
fix hotplug issue with usb devices and large screens
...n-t-use-display-for-vx-vy-for-gpu-screens.patch | 30 +++++++++++++++
...plug-cleanup-properly-if-the-screen-fails.patch | 38 ++++++++++++++++++++
xorg-x11-server.spec | 9 ++++-
3 files changed, 76 insertions(+), 1 deletions(-)
---
diff --git a/0001-xf86crtc-don-t-use-display-for-vx-vy-for-gpu-screens.patch b/0001-xf86crtc-don-t-use-display-for-vx-vy-for-gpu-screens.patch
new file mode 100644
index 0000000..1d88c5b
--- /dev/null
+++ b/0001-xf86crtc-don-t-use-display-for-vx-vy-for-gpu-screens.patch
@@ -0,0 +1,30 @@
+From 0c05db308881b3b462dae4101312c0034e6288ba Mon Sep 17 00:00:00 2001
+From: Fedora X Ninjas <x at fedoraproject.org>
+Date: Wed, 12 Dec 2012 14:02:54 +1000
+Subject: [PATCH] xf86crtc: don't use display for vx/vy for gpu screens
+
+---
+ hw/xfree86/modes/xf86Crtc.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c
+index ba84e6b..61119b3 100644
+--- a/hw/xfree86/modes/xf86Crtc.c
++++ b/hw/xfree86/modes/xf86Crtc.c
+@@ -2420,11 +2420,11 @@ xf86InitialConfiguration(ScrnInfoPtr scrn, Bool canGrow)
+ config->debug_modes = xf86ReturnOptValBool(config->options,
+ OPTION_MODEDEBUG, FALSE);
+
+- if (scrn->display->virtualX)
++ if (scrn->display->virtualX && !scrn->is_gpu)
+ width = scrn->display->virtualX;
+ else
+ width = config->maxWidth;
+- if (scrn->display->virtualY)
++ if (scrn->display->virtualY && !scrn->is_gpu)
+ height = scrn->display->virtualY;
+ else
+ height = config->maxHeight;
+--
+1.8.0.1
+
diff --git a/0001-xfree86-hotplug-cleanup-properly-if-the-screen-fails.patch b/0001-xfree86-hotplug-cleanup-properly-if-the-screen-fails.patch
new file mode 100644
index 0000000..9833e84
--- /dev/null
+++ b/0001-xfree86-hotplug-cleanup-properly-if-the-screen-fails.patch
@@ -0,0 +1,38 @@
+From 18c470b399f9f29797c1604dc8e1f11782b3f89d Mon Sep 17 00:00:00 2001
+From: Dave Airlie <airlied at redhat.com>
+Date: Wed, 12 Dec 2012 14:14:39 +1000
+Subject: [PATCH] xfree86/hotplug: cleanup properly if the screen fails to
+ initialise
+
+Due to another bug, the modesetting/udl driver would fail to init properly
+on hotplug, when it did the code didn't clean up properly, and on removing
+the device the server could crash.
+
+Found in F18 testing.
+
+Signed-off-by: Dave Airlie <airlied at redhat.com>
+---
+ hw/xfree86/common/xf86platformBus.c | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/hw/xfree86/common/xf86platformBus.c b/hw/xfree86/common/xf86platformBus.c
+index 0525e39..5866333 100644
+--- a/hw/xfree86/common/xf86platformBus.c
++++ b/hw/xfree86/common/xf86platformBus.c
+@@ -438,7 +438,12 @@ xf86platformAddDevice(int index)
+ }
+
+ scr_index = AddGPUScreen(xf86GPUScreens[i]->ScreenInit, 0, NULL);
+-
++ if (scr_index == -1) {
++ xf86DeleteScreen(xf86GPUScreens[i]);
++ xf86UnclaimPlatformSlot(&xf86_platform_devices[index], NULL);
++ xf86NumGPUScreens = old_screens;
++ return -1;
++ }
+ dixSetPrivate(&xf86GPUScreens[i]->pScreen->devPrivates,
+ xf86ScreenKey, xf86GPUScreens[i]);
+
+--
+1.8.0.1
+
diff --git a/xorg-x11-server.spec b/xorg-x11-server.spec
index 9c2abad..7eb32ba 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: 12%{?gitdate:.%{gitdate}}%{dist}
+Release: 13%{?gitdate:.%{gitdate}}%{dist}
URL: http://www.x.org
License: MIT
Group: User Interface/X
@@ -140,6 +140,10 @@ Patch7063: 0001-linux-Prefer-ioctl-KDSKBMUTE-1-over-ioctl-KDSKBMODE-.patch
# mustard: make the default queue length bigger to calm abrt down
Patch7064: 0001-mieq-Bump-default-queue-size-to-512.patch
+# some hotplug fixes/workaround
+Patch7065: 0001-xfree86-hotplug-cleanup-properly-if-the-screen-fails.patch
+Patch7066: 0001-xf86crtc-don-t-use-display-for-vx-vy-for-gpu-screens.patch
+
%global moduledir %{_libdir}/xorg/modules
%global drimoduledir %{_libdir}/dri
%global sdkdir %{_includedir}/xorg
@@ -612,6 +616,9 @@ rm -rf $RPM_BUILD_ROOT
%{xserver_source_dir}
%changelog
+* Wed Dec 12 2012 Dave Airlie <airlied at redhat.com> 1.13.0-13
+- fix hotplug issue with usb devices and large screens
+
* Wed Dec 12 2012 Dave Airlie <airlied at redhat.com< 1.13.0-12
- backout non-pci configuration less patch, its breaks multi-GPU
More information about the scm-commits
mailing list