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

Simon Thum simon.thum at gmx.de
Mon Jan 25 12:57:55 PST 2010

Jesse Barnes wrote:
> 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...
I didn't test _the patch_, I merely ran into a problem and the
stacktrace was the most useful thing I got from it. Since the machine
locked up, I concluded there must be some in-kernel KMS/radeon bug as well.

Since then I'm happy without compositing :)
> Anyway thanks for looking at it.

More information about the xorg-devel mailing list