Hello community,

here is the log from the commit of package xorg-x11-server for openSUSE:Factory 
checked in at 2017-02-22 13:48:12
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xorg-x11-server (Old)
 and      /work/SRC/openSUSE:Factory/.xorg-x11-server.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "xorg-x11-server"

Changes:
--------
--- /work/SRC/openSUSE:Factory/xorg-x11-server/xorg-x11-server.changes  
2017-02-15 10:00:48.471505080 +0100
+++ /work/SRC/openSUSE:Factory/.xorg-x11-server.new/xorg-x11-server.changes     
2017-02-22 13:48:14.141569996 +0100
@@ -1,0 +2,11 @@
+Tue Feb 21 13:39:27 UTC 2017 - [email protected]
+
+- 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). 
+
+-------------------------------------------------------------------

New:
----
  U_xfree86-Take-the-input-lock-for-xf86ScreenCheckHWCursor.patch
  U_xfree86-Take-the-input-lock-for-xf86TransparentCursor.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ xorg-x11-server.spec ++++++
--- /var/tmp/diff_new_pack.kMqg7Y/_old  2017-02-22 13:48:16.633215248 +0100
+++ /var/tmp/diff_new_pack.kMqg7Y/_new  2017-02-22 13:48:16.637214679 +0100
@@ -47,9 +47,9 @@
 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 @@
 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 @@
 #%patch1222 -p1
 
 %patch1223 -p1
+%patch1224 -p1
+%patch1225 -p1
 
 %build
 test -e source-file-list || \

++++++ U_xfree86-Take-the-input-lock-for-xf86ScreenCheckHWCursor.patch ++++++
>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

++++++ U_xfree86-Take-the-input-lock-for-xf86TransparentCursor.patch ++++++
>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


Reply via email to