Merge branch 'master' into f18
Conflicts: xorg-x11-server.spec
This commit is contained in:
commit
77b68f434d
@ -0,0 +1,60 @@
|
||||
From 9d6b8365702e4648e793fea21ad22f7174558680 Mon Sep 17 00:00:00 2001
|
||||
From: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
Date: Fri, 28 Sep 2012 11:49:29 +1000
|
||||
Subject: [PATCH] dix: fix crash on XI 1.x grabs on disabled devices.
|
||||
(#54934)
|
||||
|
||||
If the device is disabled, the sprite window is NULL and dereferencing
|
||||
crashes the server.
|
||||
|
||||
This is only triggered for XI 1.x grabs (ProcXGrabDevice) as XI2 grabs would
|
||||
trigger another code path, creating a sprite for the disabled device as if
|
||||
detaching it (which is wrong and fixed with this patch too).
|
||||
|
||||
Grabbing a disabled device doesn't make sense as it won't send events
|
||||
anyway. However, the protocol specs do not prohibit it, so we need to keep
|
||||
it working.
|
||||
Luckily, oldWin is only used for focus out events, which aren't necessary
|
||||
given that the device is disabled.
|
||||
|
||||
X.Org Bug 54934 <http://bugs.freedesktop.org/show_bug.cgi?id=54934>
|
||||
|
||||
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
Reviewed-by: Chase Douglas <chase.douglas@ubuntu.com>
|
||||
---
|
||||
dix/events.c | 9 ++++++---
|
||||
1 file changed, 6 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/dix/events.c b/dix/events.c
|
||||
index 3b40446..c0e330b 100644
|
||||
--- a/dix/events.c
|
||||
+++ b/dix/events.c
|
||||
@@ -1555,11 +1555,13 @@ ActivateKeyboardGrab(DeviceIntPtr keybd, GrabPtr grab, TimeStamp time,
|
||||
WindowPtr oldWin;
|
||||
|
||||
/* slave devices need to float for the duration of the grab. */
|
||||
- if (grab->grabtype == XI2 &&
|
||||
+ if (grab->grabtype == XI2 && keybd->enabled &&
|
||||
!(passive & ImplicitGrabMask) && !IsMaster(keybd))
|
||||
DetachFromMaster(keybd);
|
||||
|
||||
- if (grabinfo->grab)
|
||||
+ if (!keybd->enabled)
|
||||
+ oldWin = NULL;
|
||||
+ else if (grabinfo->grab)
|
||||
oldWin = grabinfo->grab->window;
|
||||
else if (keybd->focus)
|
||||
oldWin = keybd->focus->win;
|
||||
@@ -1569,7 +1571,8 @@ ActivateKeyboardGrab(DeviceIntPtr keybd, GrabPtr grab, TimeStamp time,
|
||||
oldWin = keybd->focus->win;
|
||||
if (keybd->valuator)
|
||||
keybd->valuator->motionHintWindow = NullWindow;
|
||||
- DoFocusEvents(keybd, oldWin, grab->window, NotifyGrab);
|
||||
+ if (oldWin)
|
||||
+ DoFocusEvents(keybd, oldWin, grab->window, NotifyGrab);
|
||||
if (syncEvents.playingEvents)
|
||||
grabinfo->grabTime = syncEvents.time;
|
||||
else
|
||||
--
|
||||
1.7.11.7
|
||||
|
35
0001-xf86-Fix-build-against-recent-Linux-kernel.patch
Normal file
35
0001-xf86-Fix-build-against-recent-Linux-kernel.patch
Normal file
@ -0,0 +1,35 @@
|
||||
From c5396ec05a5c6cab6608ba677f703c5227b1de13 Mon Sep 17 00:00:00 2001
|
||||
From: Thierry Reding <thierry.reding@avionic-design.de>
|
||||
Date: Wed, 17 Oct 2012 12:11:49 +0200
|
||||
Subject: [PATCH] xf86: Fix build against recent Linux kernel
|
||||
|
||||
Recent Linux kernels reworked the linux/input.h header file, which is
|
||||
now part of the "user-space API". The include guard therefore has an
|
||||
additional additional _UAPI prefix.
|
||||
|
||||
Instead of adding another case to the #ifdef, drop any include guard
|
||||
checks and instead always undefine the BUS_* definitions on Linux.
|
||||
|
||||
Signed-off-by: Thierry Reding <thierry.reding@avionic-design.de>
|
||||
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
---
|
||||
hw/xfree86/common/xf86str.h | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/hw/xfree86/common/xf86str.h b/hw/xfree86/common/xf86str.h
|
||||
index 0590262..4c2d147 100644
|
||||
--- a/hw/xfree86/common/xf86str.h
|
||||
+++ b/hw/xfree86/common/xf86str.h
|
||||
@@ -347,7 +347,7 @@ typedef struct _DriverRec {
|
||||
*/
|
||||
|
||||
/* Tolerate prior #include <linux/input.h> */
|
||||
-#if defined(linux) && defined(_INPUT_H)
|
||||
+#if defined(linux)
|
||||
#undef BUS_NONE
|
||||
#undef BUS_PCI
|
||||
#undef BUS_SBUS
|
||||
--
|
||||
1.7.11.7
|
||||
|
53
v2-xf86-Fix-non-PCI-configuration-less-setups.patch
Normal file
53
v2-xf86-Fix-non-PCI-configuration-less-setups.patch
Normal file
@ -0,0 +1,53 @@
|
||||
From patchwork Wed Oct 17 10:06:47 2012
|
||||
Content-Type: text/plain; charset="utf-8"
|
||||
MIME-Version: 1.0
|
||||
Content-Transfer-Encoding: 7bit
|
||||
Subject: [v2] xf86: Fix non-PCI configuration-less setups
|
||||
Date: Wed, 17 Oct 2012 10:06:47 -0000
|
||||
From: Thierry Reding <thierry.reding@avionic-design.de>
|
||||
X-Patchwork-Id: 12233
|
||||
Message-Id: <1350468407-27681-1-git-send-email-thierry.reding@avionic-design.de>
|
||||
To: xorg-devel@lists.x.org
|
||||
Cc: Dave Airlie <airlied@gmail.com>
|
||||
|
||||
For non-PCI video devices, such as those found on many ARM embedded
|
||||
systems, the X server currently requires the BusID option to specify the
|
||||
full path to the DRM device's sysfs node in order to properly match it
|
||||
against the probed platform devices.
|
||||
|
||||
In order to allow X to start up properly if either the BusID option was
|
||||
omitted or no configuration is present at all, the first video device is
|
||||
used by default.
|
||||
|
||||
Signed-off-by: Thierry Reding <thierry.reding@avionic-design.de>
|
||||
|
||||
---
|
||||
Changes in v2:
|
||||
- Add additional checks for safety (I don't think numDevs will ever be 0
|
||||
since a default will be generated if no configuration is present, but
|
||||
it doesn't hurt to check anyway). Without these checks there is a
|
||||
possibility of the X server crashing if no platform devices have been
|
||||
found.
|
||||
|
||||
hw/xfree86/common/xf86platformBus.c | 8 ++++++++
|
||||
1 file changed, 8 insertions(+)
|
||||
|
||||
diff --git a/hw/xfree86/common/xf86platformBus.c b/hw/xfree86/common/xf86platformBus.c
|
||||
index 0525e39..599d84a 100644
|
||||
--- a/hw/xfree86/common/xf86platformBus.c
|
||||
+++ b/hw/xfree86/common/xf86platformBus.c
|
||||
@@ -377,6 +377,14 @@ xf86platformProbeDev(DriverPtr drvp)
|
||||
continue;
|
||||
}
|
||||
|
||||
+ /*
|
||||
+ * If all of the above fails, which can happen if X was started without
|
||||
+ * configuration or if BusID wasn't set for non-PCI devices, use the first
|
||||
+ * device by default.
|
||||
+ */
|
||||
+ if (!foundScreen && xf86_num_platform_devices > 0 && numDevs > 0)
|
||||
+ foundScreen = probeSingleDevice(&xf86_platform_devices[0], drvp, devList[0], 0);
|
||||
+
|
||||
/* if autoaddgpu devices is enabled then go find a few more and add them as GPU screens */
|
||||
if (xf86Info.autoAddGPU && numDevs) {
|
||||
for (j = 0; j < xf86_num_platform_devices; j++) {
|
@ -43,7 +43,7 @@
|
||||
Summary: X.Org X11 X server
|
||||
Name: xorg-x11-server
|
||||
Version: 1.13.0
|
||||
Release: 7%{?gitdate:.%{gitdate}}%{dist}
|
||||
Release: 9%{?gitdate:.%{gitdate}}%{dist}
|
||||
URL: http://www.x.org
|
||||
License: MIT
|
||||
Group: User Interface/X
|
||||
@ -125,6 +125,15 @@ Patch7057: 0001-Xi-Call-UpdateDeviceState-after-the-first-emulated-m.patch
|
||||
Patch7058: 0001-Xi-Don-t-check-for-TOUCH_END-it-s-never-set.patch
|
||||
Patch7059: 0001-Xi-don-t-deliver-TouchEnd-to-a-client-waiting-for-To.patch
|
||||
|
||||
# kernel doesn't use _INPUT_H anymore
|
||||
Patch7060: 0001-xf86-Fix-build-against-recent-Linux-kernel.patch
|
||||
|
||||
# Fix non-PCI configuration-less setups
|
||||
Patch7061: v2-xf86-Fix-non-PCI-configuration-less-setups.patch
|
||||
|
||||
# fdo Bug 54934 - Crash on XGrabDevice() of deactivated synaptics device -
|
||||
Patch7062: 0001-dix-fix-crash-on-XI-1.x-grabs-on-disabled-devices.-5.patch
|
||||
|
||||
%global moduledir %{_libdir}/xorg/modules
|
||||
%global drimoduledir %{_libdir}/dri
|
||||
%global sdkdir %{_includedir}/xorg
|
||||
@ -597,7 +606,17 @@ rm -rf $RPM_BUILD_ROOT
|
||||
%{xserver_source_dir}
|
||||
|
||||
%changelog
|
||||
* Tue Oct 30 2012 Peter Hutterer <peter.hutterer@redhat.com> 1.13.0-7
|
||||
* Wed Nov 28 2012 Peter Hutterer <peter.hutterer@redhat.com> 1.13.0-9
|
||||
- Fix server crash when a XI 1.x device grab is activated on a disabled
|
||||
synaptics touchpad is disabled
|
||||
|
||||
* Tue Nov 27 2012 Jiri Kastner <jkastner@redhat.com> 1.13.0-8
|
||||
- Fix for non-PCI configuration-less setups
|
||||
|
||||
* Wed Oct 31 2012 Peter Hutterer <peter.hutterer@redhat.com> 1.13.0-7
|
||||
- Fix build issues on new kernels caused by removal of _INPUT_H
|
||||
|
||||
* Tue Oct 30 2012 Peter Hutterer <peter.hutterer@redhat.com> 1.13.0-6
|
||||
- Add touchscreen fixes (including pointer emulation) #871064
|
||||
|
||||
* Tue Sep 25 2012 Dave Airlie <airlied@redhat.com> 1.13.0-6
|
||||
|
Loading…
Reference in New Issue
Block a user