Subject: Re: [PATCH RFC] isdn/capi: fix up CAPI subsystem workaround locking a bit

From: Tilman Schmidt <[email-masked]>
Date: Tue, 06 Oct 2009 19:52:55 +0200

On Mon, 2009-10-05 23:24:07 +0200, Michael Buesch wrote:
> On Monday 05 October 2009 13:42:29 Tilman Schmidt wrote:

>> Thanks for the info. So do I understand correctly that after:
>>
>> commit 6aa65472d18703064898eefb5eb58f7ecd0d8912
>> Author: Michael Buesch <[email-masked]>
>> Date:   Mon Jun 26 00:25:30 2006 -0700
>>
>>     [PATCH] CAPI crash / race condition
>>
>> you were actually still seeing LIST_POISON2 Oopses in
>> capiminor_del_ack(), but after:
> 
> Yeah well. The oops with LIST_POISON was with a patch that converted the
> datahandle_queue to struct list_head, but without the spinlock_t ackqlock added.
> Then I added the spinlock_t ackqlock and it first seemed to fix the problem. (That
> is the patch from the mail).

Understood.

> But it did only shrink the race window, so the crash did still happen, but less often.

Ok.

> The crash was only "fixed" with the workaround_lock patch (but _without_ any of the
> ackqueue patches applied.)
> 
>> commit 053b47ff249b9e0a634dae807f81465205e7c228
>> Author: Michael Buesch <[email-masked]>
>> Date:   Mon Feb 12 00:53:26 2007 -0800
>>
>>     [PATCH] Workaround CAPI subsystem locking issue
>>
>> they were gone? That's interesting. I'll try to wrap my mind around
>> this.
> 
> Yeah, this sledgehammer lock did fix the crash while leaving the old non-list-head
> queue in place (it should still be there today).

That is not the case. In mainline, your second patch was applied on
top of the first one, so there is now struct list_head ackqueue and
spinlock_t ackqlock as well as static DEFINE_SPINLOCK(workaround_lock).

>> It's unfortunate that these crashes only seem to occur with one specific
>> device (FritzCard DSL) which I don't have.
> 
> I still have the device somewhere. If you want to have it, I can blow off the
> dust and send it to you. If you don't want it, I'll throw it away soon.
> I'd really like to send it to you to get rid of it. ;)

Feel free to do so. I'll send you my snailmail address by PM. I'm
making no promises about when I might get around to actually testing
it, though.

>> Can anyone shed some light on 
>> what that device is doing differently from other ISDN cards?
> 
> Well, it's a combined ISDN/DSL card, but I never used the ISDN part. So the crash
> happened while transferring data over the DSL link.

DSL over CAPI? Strange.

> The vendor driver is closed source with an open wrapper (like nvidia). It's a pretty
> crappy unmaintained piece of software, but it ran stable with some patches applied
> to the driver and the workaround-lock patch to the capi stack.

O dear. I wonder what I'll find.

Thanks,
Tilman

-- 
Tilman Schmidt                    E-Mail: [email-masked]
Bonn, Germany
Diese Nachricht besteht zu 100% aus wiederverwerteten Bits.
Ungeöffnet mindestens haltbar bis: (siehe Rückseite)