forked from pool/xorg-x11-server
Accepting request 459511 from home:dkondratenko:branches:X11:XOrg
- U_xfree86-Take-the-input-lock-for-xf86ScreenCheckHWCursor.patch * Add the missing input_lock() around the call into the driver's UseHWCursor() callback (bnc #1023845). - U_xfree86-Take-the-input-lock-for-xf86TransparentCursor.patch * The new input lock is missing for the xf86TransparentCursor() entry point (bnc #1023845). OBS-URL: https://build.opensuse.org/request/show/459511 OBS-URL: https://build.opensuse.org/package/show/X11:XOrg/xorg-x11-server?expand=0&rev=656
This commit is contained in:
parent
51379a77bc
commit
9a694ffffc
@ -0,0 +1,65 @@
|
||||
From chris at chris-wilson.co.uk Thu Feb 2 10:51:46 2017
|
||||
From: chris at chris-wilson.co.uk (Chris Wilson)
|
||||
Date: Thu, 2 Feb 2017 10:51:46 +0000
|
||||
Subject: [PATCH xserver 3/3] xfree86: Take input_lock() for
|
||||
|
||||
Add the missing input_lock() around the call into the driver's
|
||||
UseHWCursor() callback.
|
||||
|
||||
References: https://bugs.freedesktop.org/show_bug.cgi?id=99358
|
||||
---
|
||||
hw/xfree86/ramdac/xf86HWCurs.c | 27 ++++++++++++++++++++-------
|
||||
1 file changed, 20 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/hw/xfree86/ramdac/xf86HWCurs.c b/hw/xfree86/ramdac/xf86HWCurs.c
|
||||
index 26dc7e5af..09d59b15d 100644
|
||||
--- a/hw/xfree86/ramdac/xf86HWCurs.c
|
||||
+++ b/hw/xfree86/ramdac/xf86HWCurs.c
|
||||
@@ -139,9 +139,14 @@ Bool
|
||||
xf86CheckHWCursor(ScreenPtr pScreen, CursorPtr cursor, xf86CursorInfoPtr infoPtr)
|
||||
{
|
||||
ScreenPtr pSlave;
|
||||
+ Bool use_hw_cursor = TRUE;
|
||||
|
||||
- if (!xf86ScreenCheckHWCursor(pScreen, cursor, infoPtr))
|
||||
- return FALSE;
|
||||
+ input_lock();
|
||||
+
|
||||
+ if (!xf86ScreenCheckHWCursor(pScreen, cursor, infoPtr)) {
|
||||
+ use_hw_cursor = FALSE;
|
||||
+ goto unlock;
|
||||
+ }
|
||||
|
||||
/* ask each driver consuming a pixmap if it can support HW cursor */
|
||||
xorg_list_for_each_entry(pSlave, &pScreen->slave_list, slave_head) {
|
||||
@@ -151,14 +156,22 @@ xf86CheckHWCursor(ScreenPtr pScreen, CursorPtr cursor, xf86CursorInfoPtr infoPtr
|
||||
continue;
|
||||
|
||||
sPriv = dixLookupPrivate(&pSlave->devPrivates, xf86CursorScreenKey);
|
||||
- if (!sPriv) /* NULL if Option "SWCursor", possibly other conditions */
|
||||
- return FALSE;
|
||||
+ if (!sPriv) { /* NULL if Option "SWCursor", possibly other conditions */
|
||||
+ use_hw_cursor = FALSE;
|
||||
+ break;
|
||||
+ }
|
||||
|
||||
/* FALSE if HWCursor not supported by slave */
|
||||
- if (!xf86ScreenCheckHWCursor(pSlave, cursor, sPriv->CursorInfoPtr))
|
||||
- return FALSE;
|
||||
+ if (!xf86ScreenCheckHWCursor(pSlave, cursor, sPriv->CursorInfoPtr)) {
|
||||
+ use_hw_cursor = FALSE;
|
||||
+ break;
|
||||
+ }
|
||||
}
|
||||
- return TRUE;
|
||||
+
|
||||
+unlock:
|
||||
+ input_unlock();
|
||||
+
|
||||
+ return use_hw_cursor;
|
||||
}
|
||||
|
||||
static Bool
|
||||
--
|
||||
2.11.0
|
||||
|
@ -0,0 +1,38 @@
|
||||
From chris at chris-wilson.co.uk Thu Feb 2 10:51:45 2017
|
||||
From: chris at chris-wilson.co.uk (Chris Wilson)
|
||||
Date: Thu, 2 Feb 2017 10:51:45 +0000
|
||||
Subject: [PATCH xserver 2/3] xfree86: Take input lock for xf86TransparentCursor
|
||||
|
||||
The new input lock is missing for the xf86TransparentCursor() entry
|
||||
point.
|
||||
|
||||
References: https://bugs.freedesktop.org/show_bug.cgi?id=99358
|
||||
---
|
||||
hw/xfree86/ramdac/xf86HWCurs.c | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/hw/xfree86/ramdac/xf86HWCurs.c b/hw/xfree86/ramdac/xf86HWCurs.c
|
||||
index 55d5861c1..26dc7e5af 100644
|
||||
--- a/hw/xfree86/ramdac/xf86HWCurs.c
|
||||
+++ b/hw/xfree86/ramdac/xf86HWCurs.c
|
||||
@@ -261,6 +261,8 @@ xf86SetTransparentCursor(ScreenPtr pScreen)
|
||||
xf86CursorScreenKey);
|
||||
xf86CursorInfoPtr infoPtr = ScreenPriv->CursorInfoPtr;
|
||||
|
||||
+ input_lock();
|
||||
+
|
||||
if (!ScreenPriv->transparentData)
|
||||
ScreenPriv->transparentData =
|
||||
(*infoPtr->RealizeCursor) (infoPtr, NullCursor);
|
||||
@@ -273,6 +275,8 @@ xf86SetTransparentCursor(ScreenPtr pScreen)
|
||||
ScreenPriv->transparentData);
|
||||
|
||||
(*infoPtr->ShowCursor) (infoPtr->pScrn);
|
||||
+
|
||||
+ input_unlock();
|
||||
}
|
||||
|
||||
static void
|
||||
--
|
||||
2.11.0
|
||||
|
@ -1,3 +1,14 @@
|
||||
-------------------------------------------------------------------
|
||||
Tue Feb 21 13:39:27 UTC 2017 - denis.kondratenko@suse.com
|
||||
|
||||
- U_xfree86-Take-the-input-lock-for-xf86ScreenCheckHWCursor.patch
|
||||
* Add the missing input_lock() around the call into the driver's
|
||||
UseHWCursor() callback (bnc #1023845).
|
||||
|
||||
- U_xfree86-Take-the-input-lock-for-xf86TransparentCursor.patch
|
||||
* The new input lock is missing for the xf86TransparentCursor() entry
|
||||
point (bnc #1023845).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Feb 10 13:01:24 UTC 2017 - sndirsch@suse.com
|
||||
|
||||
|
@ -47,9 +47,9 @@ Url: http://xorg.freedesktop.org/
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
|
||||
Summary: X
|
||||
# Source URL: http://xorg.freedesktop.org/archive/individual/xserver/
|
||||
License: MIT
|
||||
Group: System/X11/Servers/XF86_4
|
||||
# Source URL: http://xorg.freedesktop.org/archive/individual/xserver/
|
||||
Source0: xorg-server-%{version}.tar.bz2
|
||||
Source1: sysconfig.displaymanager.template
|
||||
Source2: README.updates
|
||||
@ -211,6 +211,8 @@ Patch1162: b_cache-xkbcomp-output-for-fast-start-up.patch
|
||||
Patch1211: b_0001-Prevent-XSync-Alarms-from-senslessly-calling-CheckTr.patch
|
||||
Patch1222: b_sync-fix.patch
|
||||
Patch1223: U_xfree86-Take-the-input-lock-for-xf86RecolorCursor.patch
|
||||
Patch1224: U_xfree86-Take-the-input-lock-for-xf86ScreenCheckHWCursor.patch
|
||||
Patch1225: U_xfree86-Take-the-input-lock-for-xf86TransparentCursor.patch
|
||||
|
||||
%description
|
||||
This package contains the X.Org Server.
|
||||
@ -349,6 +351,8 @@ sh %{SOURCE92} --verify . %{SOURCE91}
|
||||
#%patch1222 -p1
|
||||
|
||||
%patch1223 -p1
|
||||
%patch1224 -p1
|
||||
%patch1225 -p1
|
||||
|
||||
%build
|
||||
test -e source-file-list || \
|
||||
|
Loading…
Reference in New Issue
Block a user