[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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(&reg, &box, 1);
+     RegionUnion(dst, dst, &reg);
+     RegionUninit(&reg);
+@@ -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: