Hello community, here is the log from the commit of package xorg-x11-server for openSUSE:Factory checked in at 2017-02-15 10:00:47 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 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-03 20:07:27.674482982 +0100 +++ /work/SRC/openSUSE:Factory/.xorg-x11-server.new/xorg-x11-server.changes 2017-02-15 10:00:48.471505080 +0100 @@ -1,0 +2,16 @@ +Fri Feb 10 13:01:24 UTC 2017 - [email protected] + +- U_xfree86-Take-the-input-lock-for-xf86RecolorCursor.patch + * fixes random crashes in X in multihead mode if one of the + monitors is vertically oriented (bnc #1023845) + +------------------------------------------------------------------- +Fri Feb 3 11:40:11 UTC 2017 - [email protected] + +- N_driver-autoconfig.diff: + No longer try to load "amdgpu" DDX by default for all GPUs with + ATI vendor ID; this is now handled instead by an "OutputClass" + section via kernel driver match, which has been added as config + file to xf86-video-amdgpu driver package (bnc#1023385) + +------------------------------------------------------------------- New: ---- U_xfree86-Take-the-input-lock-for-xf86RecolorCursor.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ xorg-x11-server.spec ++++++ --- /var/tmp/diff_new_pack.F7gX7p/_old 2017-02-15 10:00:49.795318619 +0100 +++ /var/tmp/diff_new_pack.F7gX7p/_new 2017-02-15 10:00:49.799318055 +0100 @@ -210,6 +210,7 @@ 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 %description This package contains the X.Org Server. @@ -347,6 +348,8 @@ ### patch222 might not be applicable anymore #%patch1222 -p1 +%patch1223 -p1 + %build test -e source-file-list || \ find -L . -type f \! -name '*.orig' \! -path ./source-file-list > \ ++++++ N_driver-autoconfig.diff ++++++ --- /var/tmp/diff_new_pack.F7gX7p/_old 2017-02-15 10:00:49.843311858 +0100 +++ /var/tmp/diff_new_pack.F7gX7p/_new 2017-02-15 10:00:49.843311858 +0100 @@ -8,17 +8,7 @@ =================================================================== --- hw/xfree86/common/xf86pciBus.c.orig +++ hw/xfree86/common/xf86pciBus.c -@@ -1107,7 +1107,8 @@ videoPtrToDriverList(struct pci_device * - driverList[0] = "ast"; - break; - case 0x1002: -- driverList[0] = "ati"; -+ driverList[0] = "amdgpu"; -+ driverList[1] = "ati"; - break; - case 0x102c: - driverList[0] = "chips"; -@@ -1139,6 +1141,13 @@ videoPtrToDriverList(struct pci_device * +@@ -1185,6 +1185,13 @@ xf86VideoPtrToDriverList(struct pci_devi driverList[0] = "neomagic"; break; case 0x10de: @@ -32,7 +22,7 @@ case 0x12d2: { int idx = 0; -@@ -1150,7 +1159,8 @@ videoPtrToDriverList(struct pci_device * +@@ -1196,7 +1203,8 @@ xf86VideoPtrToDriverList(struct pci_devi break; } case 0x1106: ++++++ U_xfree86-Take-the-input-lock-for-xf86RecolorCursor.patch ++++++ >From 7198a6d4e74f684cb383b3e0f70dd2bae405e6e7 Mon Sep 17 00:00:00 2001 From: Chris Wilson <[email protected]> Date: Mon, 16 Jan 2017 22:17:36 +0000 Subject: [PATCH xserver] xfree86: Take the input lock for xf86RecolorCursor xf86RecolorCursor() may be called directly from XRecolorCursor as well as from xf86ScreenSetCursor(). In the latter case, the input lock is already held, but not for the former and so we need to add a wrapper function that acquires the input lock before performing xf86RecolorCursor() References: https://bugs.freedesktop.org/show_bug.cgi?id=99358 --- hw/xfree86/ramdac/xf86HWCurs.c | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/hw/xfree86/ramdac/xf86HWCurs.c b/hw/xfree86/ramdac/xf86HWCurs.c index 4481320..55d5861 100644 --- a/hw/xfree86/ramdac/xf86HWCurs.c +++ b/hw/xfree86/ramdac/xf86HWCurs.c @@ -22,6 +22,9 @@ #include "servermd.h" +static void +xf86RecolorCursor_locked(xf86CursorScreenPtr ScreenPriv, CursorPtr pCurs); + static CARD32 xf86ReverseBitOrder(CARD32 v) { @@ -204,7 +207,7 @@ xf86ScreenSetCursor(ScreenPtr pScreen, CursorPtr pCurs, int x, int y) if (!xf86DriverLoadCursorImage (infoPtr, bits)) return FALSE; - xf86RecolorCursor(pScreen, pCurs, 1); + xf86RecolorCursor_locked (ScreenPriv, pCurs); (*infoPtr->SetCursorPosition) (infoPtr->pScrn, x, y); @@ -312,12 +315,9 @@ xf86MoveCursor(ScreenPtr pScreen, int x, int y) input_unlock(); } -void -xf86RecolorCursor(ScreenPtr pScreen, CursorPtr pCurs, Bool displayed) +static void +xf86RecolorCursor_locked(xf86CursorScreenPtr ScreenPriv, CursorPtr pCurs) { - xf86CursorScreenPtr ScreenPriv = - (xf86CursorScreenPtr) dixLookupPrivate(&pScreen->devPrivates, - xf86CursorScreenKey); xf86CursorInfoPtr infoPtr = ScreenPriv->CursorInfoPtr; /* recoloring isn't applicable to ARGB cursors and drivers @@ -357,6 +357,18 @@ xf86RecolorCursor(ScreenPtr pScreen, CursorPtr pCurs, Bool displayed) } } +void +xf86RecolorCursor(ScreenPtr pScreen, CursorPtr pCurs, Bool displayed) +{ + xf86CursorScreenPtr ScreenPriv = + (xf86CursorScreenPtr) dixLookupPrivate(&pScreen->devPrivates, + xf86CursorScreenKey); + + input_lock(); + xf86RecolorCursor_locked (ScreenPriv, pCurs); + input_unlock(); +} + /* These functions assume that MaxWidth is a multiple of 32 */ static unsigned char * RealizeCursorInterleave0(xf86CursorInfoPtr infoPtr, CursorPtr pCurs) -- 2.10.2
