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
