rpms/xorg-x11-server/F-12 xserver-1.6.99-exa-infinite-loop.patch, NONE, 1.1 xserver-1.6.99-rotate-wrapping-fix.patch, NONE, 1.1 xorg-x11-server.spec, 1.490, 1.491

Dave Airlie airlied at fedoraproject.org
Thu Oct 1 05:57:10 UTC 2009


Author: airlied

Update of /cvs/pkgs/rpms/xorg-x11-server/F-12
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv6906

Modified Files:
	xorg-x11-server.spec 
Added Files:
	xserver-1.6.99-exa-infinite-loop.patch 
	xserver-1.6.99-rotate-wrapping-fix.patch 
Log Message:
* Thu Oct 01 2009 Dave Airlie <airlied at redhat.com> 1.6.99.903-2
- backport EXA and rotate crash fixes


xserver-1.6.99-exa-infinite-loop.patch:
 exa_migration_classic.c |   11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

--- NEW FILE xserver-1.6.99-exa-infinite-loop.patch ---
>From fc599ab01ccaaff3c0bfc5a4d623efe725f175db Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michel=20D=C3=A4nzer?= <daenzer at vmware.com>
Date: Thu, 1 Oct 2009 15:15:19 +1000
Subject: [PATCH] exa: avoid infinite loops if UTS sw fallbacks.

The upload in finish access can cause an infinite loop if
UTS returns FALSE in here.

Signed-off-by: Dave Airlie <airlied at redhat.com>
---
 exa/exa_migration_classic.c |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/exa/exa_migration_classic.c b/exa/exa_migration_classic.c
index 4819af8..6d7b9f5 100644
--- a/exa/exa_migration_classic.c
+++ b/exa/exa_migration_classic.c
@@ -242,11 +242,6 @@ exaCopyDirty(ExaMigrationPtr migrate, RegionPtr pValidDst, RegionPtr pValidSrc,
 	pBox++;
     }
 
-    if (access_prepared)
-	exaFinishAccess(&pPixmap->drawable, fallback_index);
-    else if (need_sync && sync)
-	sync (pPixmap->drawable.pScreen);
-
     pExaPixmap->offscreen = save_offscreen;
     pPixmap->devKind = save_pitch;
 
@@ -261,6 +256,11 @@ exaCopyDirty(ExaMigrationPtr migrate, RegionPtr pValidDst, RegionPtr pValidSrc,
     REGION_UNION(pScreen, pValidDst, pValidDst, &CopyReg);
 
     REGION_UNINIT(pScreen, &CopyReg);
+
+    if (access_prepared)
+	exaFinishAccess(&pPixmap->drawable, fallback_index);
+    else if (need_sync && sync)
+	sync (pPixmap->drawable.pScreen);
 }
 
 /**
-- 
1.6.5.rc2


xserver-1.6.99-rotate-wrapping-fix.patch:
 xf86Rotate.c |   11 +++--------
 1 file changed, 3 insertions(+), 8 deletions(-)

--- NEW FILE xserver-1.6.99-rotate-wrapping-fix.patch ---
>From f1893a5a434e483ab40001e5a765902f7ce5ed4e Mon Sep 17 00:00:00 2001
From: Dave Airlie <airlied at redhat.com>
Date: Thu, 1 Oct 2009 15:24:04 +1000
Subject: [PATCH] rotate: drop unwrapping inside block handler.

Keith has shown half the block handlers wrappers are wrong, also
dynamic wrapping/unwrapping from what I can see will happen after
the drivers, so its really accidental ABI, that we can't change
now without modifing drivers. So be safe for 1.7.

Signed-off-by: Dave Airlie <airlied at redhat.com>
---
 hw/xfree86/modes/xf86Rotate.c |   10 +++-------
 1 files changed, 3 insertions(+), 7 deletions(-)

diff --git a/hw/xfree86/modes/xf86Rotate.c b/hw/xfree86/modes/xf86Rotate.c
index 9e65c99..5de6b0c 100644
--- a/hw/xfree86/modes/xf86Rotate.c
+++ b/hw/xfree86/modes/xf86Rotate.c
@@ -268,13 +268,9 @@ xf86RotateBlockHandler(int screenNum, pointer blockData,
     rotation_active = xf86RotateRedisplay(pScreen);
     pScreen->BlockHandler = xf86_config->BlockHandler;
     (*pScreen->BlockHandler) (screenNum, blockData, pTimeout, pReadmask);
-    if (rotation_active) {
-	/* Re-wrap if rotation is still happening */
-	xf86_config->BlockHandler = pScreen->BlockHandler;
-	pScreen->BlockHandler = xf86RotateBlockHandler;
-    } else {
-	xf86_config->BlockHandler = NULL;
-    }
+    /* cannot avoid re-wrapping until all wrapping is audited */
+    xf86_config->BlockHandler = pScreen->BlockHandler;
+    pScreen->BlockHandler = xf86RotateBlockHandler;
 }
 
 void
-- 
1.6.5.rc2



Index: xorg-x11-server.spec
===================================================================
RCS file: /cvs/pkgs/rpms/xorg-x11-server/F-12/xorg-x11-server.spec,v
retrieving revision 1.490
retrieving revision 1.491
diff -u -p -r1.490 -r1.491
--- xorg-x11-server.spec	28 Sep 2009 12:10:42 -0000	1.490
+++ xorg-x11-server.spec	1 Oct 2009 05:57:08 -0000	1.491
@@ -19,7 +19,7 @@
 Summary:   X.Org X11 X server
 Name:      xorg-x11-server
 Version:   1.6.99.903
-Release:   1%{dist}
+Release:   2%{dist}
 URL:       http://www.x.org
 License:   MIT
 Group:     User Interface/X
@@ -73,6 +73,10 @@ Patch6030: xserver-1.6.99-right-of.patch
 Patch6033: xserver-1.6.99-default-modes.patch
 Patch6044: xserver-1.6.99-hush-prerelease-warning.patch
 
+# upstream already
+Patch7000: xserver-1.6.99-rotate-wrapping-fix.patch
+Patch7001: xserver-1.6.99-exa-infinite-loop.patch
+
 %define moduledir	%{_libdir}/xorg/modules
 %define drimoduledir	%{_libdir}/dri
 %define sdkdir		%{_includedir}/xorg
@@ -500,6 +504,9 @@ rm -rf $RPM_BUILD_ROOT
 %{xserver_source_dir}
 
 %changelog
+* Thu Oct 01 2009 Dave Airlie <airlied at redhat.com> 1.6.99.903-2
+- backport EXA and rotate crash fixes
+
 * Mon Sep 28 2009 Peter Hutterer <peter.hutterer at redhat.com> 1.6.99.903-1
 - xserver 1.6.99.903 
 




More information about the fedora-extras-commits mailing list