xorg-server: Changes to 'ubuntu-precise'
debian/changelog | 8 +++
debian/patches/233-xf86events-valgrind.patch | 19 ++++++++
debian/patches/235-composite-tracking.diff | 63 +++++++++++++++++++++++++++
debian/patches/series | 2
4 files changed, 92 insertions(+)
New commits:
commit 61d850889bb4ffd97cf8d5b8b4c85897e1988a13
Author: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Date: Thu Oct 25 14:14:21 2012 +0200
enable backported fixes from quantal
* add 233-xf86events-valgrind.patch to fix a xserver corruption
when acpid is stopped before Xorg is. (LP: #1070481)
* add 235-composite-tracking.diff to fix exa corruption. (LP: #1010794)
diff --git a/debian/changelog b/debian/changelog
index 4e066c9..90f290b 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,11 @@
+xorg-server (2:1.11.4-0ubuntu10.9) UNRELEASED; urgency=low
+
+ * add 233-xf86events-valgrind.patch to fix a xserver corruption
+ when acpid is stopped before Xorg is. (LP: #1070481)
+ * add 235-composite-tracking.diff to fix exa corruption. (LP: #1010794)
+
+ -- Maarten Lankhorst <maarten.lankhorst@canonical.com> Thu, 25 Oct 2012 13:41:16 +0200
+
xorg-server (2:1.11.4-0ubuntu10.8) precise-proposed; urgency=low
* Add upstream patches to avoid seg fault in case the user is running with
diff --git a/debian/patches/series b/debian/patches/series
index 0279297..5681154 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -33,6 +33,8 @@
228_log-format-fix.patch
229_randr_first_check_pScrPriv_before_using_the_pointer.patch
230_randr_catch_two_more_potential_unset_rrScrPriv_uses.patch
+233-xf86events-valgrind.patch
+235-composite-tracking.diff
## Input Stack Patches (from xserver 1.12) ##
500_pointer_barrier_thresholds.diff
commit 94e1d6492a9d51c5246fb58a38b599d0fb0d272c
Author: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Date: Thu Oct 25 13:40:23 2012 +0200
rebase commits from ubuntu branch back to precise
233-xf86events-valgrind.patch
235-composite-tracking.diff
diff --git a/debian/patches/233-xf86events-valgrind.patch b/debian/patches/233-xf86events-valgrind.patch
new file mode 100644
index 0000000..f2fbcfb
--- /dev/null
+++ b/debian/patches/233-xf86events-valgrind.patch
@@ -0,0 +1,19 @@
+diff --git a/hw/xfree86/common/xf86Events.c b/hw/xfree86/common/xf86Events.c
+index 41ffabd..6082bee 100644
+--- a/hw/xfree86/common/xf86Events.c
++++ b/hw/xfree86/common/xf86Events.c
+@@ -270,10 +270,10 @@ xf86Wakeup(pointer blockData, int err, pointer pReadmask)
+ }
+ }
+
+- if (err >= 0) { /* we don't want the handlers called if select() */
+- IHPtr ih; /* returned with an error condition, do we? */
+-
+- for (ih = InputHandlers; ih; ih = ih->next) {
++ if (err >= 0) { /* we don't want the handlers called if select() */
++ IHPtr ih, ih_tmp; /* returned with an error condition, do we? */
++
++ nt_list_for_each_entry_safe(ih, ih_tmp, InputHandlers, next) {
+ if (ih->enabled && ih->fd >= 0 && ih->ihproc &&
+ (FD_ISSET(ih->fd, ((fd_set *)pReadmask)) != 0)) {
+ ih->ihproc(ih->fd, ih->data);
diff --git a/debian/patches/235-composite-tracking.diff b/debian/patches/235-composite-tracking.diff
new file mode 100644
index 0000000..20d2ce2
--- /dev/null
+++ b/debian/patches/235-composite-tracking.diff
@@ -0,0 +1,63 @@
+diff --git a/exa/exa_priv.h b/exa/exa_priv.h
+index 70de4bd..60aa328 100644
+--- a/exa/exa_priv.h
++++ b/exa/exa_priv.h
+@@ -206,6 +206,7 @@ typedef struct {
+ RegionRec srcReg;
+ RegionRec maskReg;
+ PixmapPtr srcPix;
++ PixmapPtr maskPix;
+
+ } ExaScreenPrivRec, *ExaScreenPrivPtr;
+
+diff --git a/exa/exa_unaccel.c b/exa/exa_unaccel.c
+index 219f903..7d83d15 100644
+--- a/exa/exa_unaccel.c
++++ b/exa/exa_unaccel.c
+@@ -448,6 +448,13 @@ ExaSrcValidate(DrawablePtr pDrawable,
+ RegionPtr dst;
+ int xoff, yoff;
+
++ if (pExaScr->srcPix == pPix)
++ dst = &pExaScr->srcReg;
++ else if (pExaScr->maskPix == pPix)
++ dst = &pExaScr->maskReg;
++ else
++ return;
++
+ exaGetDrawableDeltas(pDrawable, pPix, &xoff, &yoff);
+
+ box.x1 = x + xoff;
+@@ -455,9 +462,6 @@ ExaSrcValidate(DrawablePtr pDrawable,
+ box.x2 = box.x1 + width;
+ box.y2 = box.y1 + height;
+
+- dst = (pExaScr->srcPix == pPix) ? &pExaScr->srcReg :
+- &pExaScr->maskReg;
+-
+ RegionInit(®, &box, 1);
+ RegionUnion(dst, dst, ®);
+ RegionUninit(®);
+@@ -506,17 +510,20 @@ ExaPrepareCompositeReg(ScreenPtr pScreen,
+ RegionTranslate(pSrc->pCompositeClip,
+ -pSrc->pDrawable->x,
+ -pSrc->pDrawable->y);
+- }
++ } else
++ pExaScr->srcPix = NULL;
+
+ if (pMask && pMask->pDrawable) {
+ pMaskPix = exaGetDrawablePixmap(pMask->pDrawable);
+ RegionNull(&pExaScr->maskReg);
+ maskReg = &pExaScr->maskReg;
++ pExaScr->maskPix = pMaskPix;
+ if (pMask != pDst && pMask != pSrc)
+ RegionTranslate(pMask->pCompositeClip,
+ -pMask->pDrawable->x,
+ -pMask->pDrawable->y);
+- }
++ } else
++ pExaScr->maskPix = NULL;
+
+ RegionTranslate(pDst->pCompositeClip,
+ -pDst->pDrawable->x,
Reply to: