rpms/xorg-x11-server/F-13 xserver-1.8.0-resource-accounting.patch, NONE, 1.1 xorg-x11-server.spec, 1.520, 1.521 xserver-1.8.0-glxdri2-resource-conversion.patch, 1.3, 1.4
Owen Taylor
otaylor at fedoraproject.org
Sun May 2 14:45:33 UTC 2010
Author: otaylor
Update of /cvs/extras/rpms/xorg-x11-server/F-13
In directory cvs01.phx2.fedoraproject.org:/tmp/cvs-serv4661
Modified Files:
xorg-x11-server.spec
xserver-1.8.0-glxdri2-resource-conversion.patch
Added Files:
xserver-1.8.0-resource-accounting.patch
Log Message:
* Sat May 1 2010 Owen Taylor <otaylor at redhat.com> - 1.8.0-11
- Update redirected pixmaps patch fixing several memory leaks
- Add a fix for client resource table corruption
(More updates from https://bugs.freedesktop.org/show_bug.cgi?id=27767)
xserver-1.8.0-resource-accounting.patch:
resource.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- NEW FILE xserver-1.8.0-resource-accounting.patch ---
>From 6ad997bce8d6ecc74ffb70f0911b5d7ead03f48e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Kristian=20H=C3=B8gsberg?= <krh at bitplanet.net>
Date: Sat, 1 May 2010 11:36:52 -0400
Subject: [PATCH] Fix resource counting FindResourceByType
When removing resources using FindResourceByType, we need to
update the element count. Failure to do this means that the
reentrancy checks that the number of elements haven't changed
in FindResource and elsewhere don't work.
---
dix/resource.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/dix/resource.c b/dix/resource.c
index 91d0cfb..aec2a5b 100644
--- a/dix/resource.c
+++ b/dix/resource.c
@@ -589,6 +589,7 @@ FreeResourceByType(XID id, RESTYPE type, Bool skipFree)
res->value, TypeNameString(res->type));
#endif
*prev = res->next;
+ clientTable[cid].elements--;
CallResourceStateCallback(ResourceStateFreeing, res);
--
1.7.0.1
Index: xorg-x11-server.spec
===================================================================
RCS file: /cvs/extras/rpms/xorg-x11-server/F-13/xorg-x11-server.spec,v
retrieving revision 1.520
retrieving revision 1.521
diff -u -p -r1.520 -r1.521
--- xorg-x11-server.spec 30 Apr 2010 23:01:26 -0000 1.520
+++ xorg-x11-server.spec 2 May 2010 14:45:33 -0000 1.521
@@ -19,7 +19,7 @@
Summary: X.Org X11 X server
Name: xorg-x11-server
Version: 1.8.0
-Release: 10%{?gitdate:.%{gitdate}}%{dist}
+Release: 11%{?gitdate:.%{gitdate}}%{dist}
URL: http://www.x.org
License: MIT
Group: User Interface/X
@@ -89,8 +89,12 @@ Patch6053: xserver-1.8-disable-vboxvideo
Patch6055: xserver-1.7.6-export-dix-functions.patch
Patch6056: xserver-1.7.6-export-more-dix-functions.patch
Patch6057: xserver-1.8.0-xorg.conf.d-changes.patch
+# Backports from master
Patch6058: xserver-1.8.0-swap-fixes.patch
-Patch6059: xserver-1.8.0-glxdri2-resource-conversion.patch
+# https://bugs.freedesktop.org/show_bug.cgi?id=27767 (plus related
+# pieces needed backported from master)
+Patch6059: xserver-1.8.0-resource-accounting.patch
+Patch6060: xserver-1.8.0-glxdri2-resource-conversion.patch
%define moduledir %{_libdir}/xorg/modules
%define drimoduledir %{_libdir}/dri
@@ -532,6 +536,11 @@ rm -rf $RPM_BUILD_ROOT
%{xserver_source_dir}
%changelog
+* Sat May 1 2010 Owen Taylor <otaylor at redhat.com> - 1.8.0-11
+- Update redirected pixmaps patch fixing several memory leaks
+- Add a fix for client resource table corruption
+ (More updates from https://bugs.freedesktop.org/show_bug.cgi?id=27767)
+
* Fri Apr 30 2010 Owen Taylor <otaylor at redhat.com> - 1.8.0-10
- Updated version of redirected pixmaps patch
(Again from https://bugs.freedesktop.org/show_bug.cgi?id=27767)
xserver-1.8.0-glxdri2-resource-conversion.patch:
glx/glxcmds.c | 60 ++++++++----
glx/glxdri.c | 8 +
glx/glxdri2.c | 17 +--
glx/glxdriswrast.c | 8 +
glx/glxext.c | 11 ++
glx/glxscreens.c | 28 -----
glx/glxscreens.h | 7 -
hw/xfree86/dri2/dri2.c | 215 +++++++++++++++++++++++++++-------------------
hw/xfree86/dri2/dri2.h | 3
hw/xfree86/dri2/dri2ext.c | 24 -----
include/list.h | 7 +
11 files changed, 209 insertions(+), 179 deletions(-)
Index: xserver-1.8.0-glxdri2-resource-conversion.patch
===================================================================
RCS file: /cvs/extras/rpms/xorg-x11-server/F-13/xserver-1.8.0-glxdri2-resource-conversion.patch,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -p -r1.3 -r1.4
--- xserver-1.8.0-glxdri2-resource-conversion.patch 30 Apr 2010 23:01:26 -0000 1.3
+++ xserver-1.8.0-glxdri2-resource-conversion.patch 2 May 2010 14:45:33 -0000 1.4
@@ -1,4 +1,4 @@
-From d4bc0d6eab1390b7e94280b7473291be7bcf7062 Mon Sep 17 00:00:00 2001
+From 69cbca0b83a86ad1ab266314e76304ca4e35f57b Mon Sep 17 00:00:00 2001
From: Owen Taylor <otaylor at redhat.com>
Date: Fri, 30 Apr 2010 13:17:18 -0400
Subject: [PATCH] Merge fixes for DRI drawable handling from master
@@ -21,7 +21,7 @@ Reviewed-by: Michel Dänzer <michel at daen
https://bugs.freedesktop.org/show_bug.cgi?id=26394
Signed-off-by: Keith Packard <keithp at keithp.com>
-commit 3ff8ba50a6a173bfb6d42dc7e2fd5da4e8706db8
+commit 2b3f755254675933475b068ff20bd322ffb8631f
Author: Kristian Høgsberg <krh at bitplanet.net>
Date: Thu, 29 Apr 2010 16:36:10 -0400
@@ -85,21 +85,21 @@ destroyed or the client exits.
Signed-off-by: Kristian Høgsberg <krh at bitplanet.net>
Signed-off-by: Keith Packard <keithp at keithp.com>
---
- glx/glxcmds.c | 62 +++++++++-----
+ glx/glxcmds.c | 60 ++++++++-----
glx/glxdri.c | 8 +-
glx/glxdri2.c | 17 ++--
glx/glxdriswrast.c | 8 +-
glx/glxext.c | 11 +++
glx/glxscreens.c | 28 ------
glx/glxscreens.h | 7 +-
- hw/xfree86/dri2/dri2.c | 214 +++++++++++++++++++++++++++------------------
+ hw/xfree86/dri2/dri2.c | 215 +++++++++++++++++++++++++++------------------
hw/xfree86/dri2/dri2.h | 3 +-
hw/xfree86/dri2/dri2ext.c | 24 +-----
include/list.h | 6 ++
- 11 files changed, 209 insertions(+), 179 deletions(-)
+ 11 files changed, 209 insertions(+), 178 deletions(-)
diff --git a/glx/glxcmds.c b/glx/glxcmds.c
-index 77afbf4..31a7d32 100644
+index 77afbf4..ec3bbe6 100644
--- a/glx/glxcmds.c
+++ b/glx/glxcmds.c
@@ -161,7 +161,11 @@ validGlxDrawable(ClientPtr client, XID id, int type, int access_mode,
@@ -167,7 +167,7 @@ index 77afbf4..31a7d32 100644
+ /* Add the glx drawable under the XID of the underlying X drawable
+ * too. That way we'll get a callback in DrawableGone and can
+ * clean up properly when the drawable is destroyed. */
-+ if (pDraw->id != glxDrawableId &&
++ if (drawableId != glxDrawableId &&
+ !AddResource(pDraw->id, __glXDrawableRes, pGlxDraw)) {
+ pGlxDraw->destroy (pGlxDraw);
+ return BadAlloc;
@@ -199,15 +199,6 @@ index 77afbf4..31a7d32 100644
return err;
}
-@@ -1266,7 +1271,7 @@ static int DoDestroyDrawable(__GLXclientState *cl, XID glxdrawable, int type)
- DixDestroyAccess, &pGlxDraw, &err))
- return err;
-
-- FreeResource(glxdrawable, FALSE);
-+ FreeResourceByType(glxdrawable, __glXDrawableRes, FALSE);
-
- return Success;
- }
@@ -1294,6 +1299,8 @@ DoCreatePbuffer(ClientPtr client, int screenNum, XID fbconfigId,
PixmapPtr pPixmap;
int err;
@@ -471,7 +462,7 @@ index bff4363..861e03c 100644
diff --git a/hw/xfree86/dri2/dri2.c b/hw/xfree86/dri2/dri2.c
-index 2bdb733..3fd2326 100644
+index 2bdb733..11442d0 100644
--- a/hw/xfree86/dri2/dri2.c
+++ b/hw/xfree86/dri2/dri2.c
@@ -37,6 +37,7 @@
@@ -574,7 +565,7 @@ index 2bdb733..3fd2326 100644
pPriv->width = pDraw->width;
pPriv->height = pDraw->height;
pPriv->buffers = NULL;
-@@ -157,44 +151,130 @@ DRI2CreateDrawable(DrawablePtr pDraw)
+@@ -157,44 +151,131 @@ DRI2CreateDrawable(DrawablePtr pDraw)
pPriv->swap_limit = 1; /* default to double buffering */
pPriv->last_swap_msc = 0;
pPriv->last_swap_ust = 0;
@@ -683,6 +674,7 @@ index 2bdb733..3fd2326 100644
+ * unregister the X drawable resource. */
+ if (!DRI2LookupDrawableRef(pPriv, ref->id))
+ FreeResourceByType(ref->id, dri2DrawableRes, TRUE);
++ free(ref);
+ break;
+ }
+
@@ -721,7 +713,7 @@ index 2bdb733..3fd2326 100644
}
static int
-@@ -505,10 +585,6 @@ DRI2WaitMSCComplete(ClientPtr client, DrawablePtr pDraw, int frame,
+@@ -505,10 +586,6 @@ DRI2WaitMSCComplete(ClientPtr client, DrawablePtr pDraw, int frame,
pPriv->blockedClient = NULL;
pPriv->blockedOnMsc = FALSE;
@@ -732,7 +724,7 @@ index 2bdb733..3fd2326 100644
}
static void
-@@ -576,13 +652,6 @@ DRI2SwapComplete(ClientPtr client, DrawablePtr pDraw, int frame,
+@@ -576,13 +653,6 @@ DRI2SwapComplete(ClientPtr client, DrawablePtr pDraw, int frame,
pPriv->last_swap_ust = ust;
DRI2WakeClient(client, pDraw, frame, tv_sec, tv_usec);
@@ -746,7 +738,7 @@ index 2bdb733..3fd2326 100644
}
Bool
-@@ -750,7 +819,7 @@ DRI2WaitMSC(ClientPtr client, DrawablePtr pDraw, CARD64 target_msc,
+@@ -750,7 +820,7 @@ DRI2WaitMSC(ClientPtr client, DrawablePtr pDraw, CARD64 target_msc,
Bool ret;
pPriv = DRI2GetDrawable(pDraw);
@@ -755,7 +747,7 @@ index 2bdb733..3fd2326 100644
return BadDrawable;
/* Old DDX just completes immediately */
-@@ -774,7 +843,7 @@ DRI2WaitSBC(ClientPtr client, DrawablePtr pDraw, CARD64 target_sbc,
+@@ -774,7 +844,7 @@ DRI2WaitSBC(ClientPtr client, DrawablePtr pDraw, CARD64 target_sbc,
DRI2DrawablePtr pPriv;
pPriv = DRI2GetDrawable(pDraw);
@@ -764,7 +756,7 @@ index 2bdb733..3fd2326 100644
return BadDrawable;
/* target_sbc == 0 means to block until all pending swaps are
-@@ -800,36 +869,6 @@ DRI2WaitSBC(ClientPtr client, DrawablePtr pDraw, CARD64 target_sbc,
+@@ -800,36 +870,6 @@ DRI2WaitSBC(ClientPtr client, DrawablePtr pDraw, CARD64 target_sbc,
return Success;
}
@@ -801,7 +793,7 @@ index 2bdb733..3fd2326 100644
Bool
DRI2HasSwapControl(ScreenPtr pScreen)
{
-@@ -890,6 +929,7 @@ DRI2ScreenInit(ScreenPtr pScreen, DRI2InfoPtr info)
+@@ -890,6 +930,7 @@ DRI2ScreenInit(ScreenPtr pScreen, DRI2InfoPtr info)
if (!ds)
return FALSE;
@@ -809,7 +801,7 @@ index 2bdb733..3fd2326 100644
ds->fd = info->fd;
ds->deviceName = info->deviceName;
dri2_major = 1;
-@@ -961,6 +1001,8 @@ DRI2Setup(pointer module, pointer opts, int *errmaj, int *errmin)
+@@ -961,6 +1002,8 @@ DRI2Setup(pointer module, pointer opts, int *errmaj, int *errmin)
{
static Bool setupDone = FALSE;
More information about the scm-commits
mailing list