[PATCH] DRI2: handle drawable destruction properly at DRI2SwapComplete time

Jesse Barnes jbarnes at virtuousgeek.org
Mon Jan 25 12:27:42 PST 2010

On Mon, 25 Jan 2010 20:21:12 +0100
Simon Thum <simon.thum at gmx.de> wrote:

> Jesse Barnes wrote:
> > Simon reported an issue with kwin that turned out to be a general
> > problem.  If a drawable goes away before its swap completes, we'll
> > try to free it up. However, we free it improperly, which causes a
> > server crash in DRI2DestroyDrawable.  Fix that up by splitting the
> > free code out and calling it from DRI2SwapComplete.
> > 
> > Tested-by: Simon Thum <simon.thum at gmx.de>
> Note I didn't test it, maybe you're missing out someone? But feel free
> to add my
>   Reviewed-by: Simon Thum <simon.thum at gmx.de>
> if there's no concurrency problem with
>   xfree(pPriv);
> being executed before
>   dixSetPrivate(&pWin->devPrivates, dri2WindowPrivateKey, NULL);
> (In case the swap stuff is parallelized somehow)

Oh I must have misread the bug?  I thought you tested and then ran into
the kernel busy buffer bug...

Anyway thanks for looking at it.

Jesse Barnes, Intel Open Source Technology Center

More information about the xorg-devel mailing list