netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: David Woodhouse <dwmw2@infradead.org>
To: David Miller <davem@davemloft.net>
Cc: linux-atm-general@lists.sourceforge.net, netdev@vger.kernel.org,
	nathan@traverse.com.au
Subject: Re: RX/close vcc race with solos/atmtcp/usbatm/he
Date: Fri, 28 May 2010 14:33:22 +0100	[thread overview]
Message-ID: <1275053602.4355.38.camel@macbook.infradead.org> (raw)
In-Reply-To: <20100528.034628.200383563.davem@davemloft.net>

On Fri, 2010-05-28 at 03:46 -0700, David Miller wrote:
> From: David Woodhouse <dwmw2@infradead.org>
> Date: Wed, 26 May 2010 12:16:24 +0100
> 
> > Can anyone see a better approach -- short of rewriting the whole ATM
> > layer to make the locking saner?
> 
> There is no doubt in my mind that these VCC objects need to be
> refcounted when used like this.

Perhaps. Although in the general case they're tied to the 'struct sock'
and don't need to outlive it. These drivers which look up the VCC to
feed incoming packets to it are the only exception to that rule that I'm
aware of.

> The only other alternative is to make use of something like RCU.

I agree. In fact the use of tasklet_unlock_wait() in my patch is what I
settled on when I went looking for 'something like RCU' to solve this
particular case. I was _going_ to add RCU stuff, but realised that this
was sufficient.

In the close() path we clear the READY bit in the VCC, wait for the
tasklet to finish using it, and only then do we destroy the VCC.

-- 
David Woodhouse                            Open Source Technology Centre
David.Woodhouse@intel.com                              Intel Corporation


  reply	other threads:[~2010-05-28 13:33 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-05-26 11:16 RX/close vcc race with solos/atmtcp/usbatm/he David Woodhouse
2010-05-26 18:51 ` [Linux-ATM-General] " Stanislaw Gruszka
2010-05-28 10:46 ` David Miller
2010-05-28 13:33   ` David Woodhouse [this message]
2010-06-07 10:02 ` David Woodhouse
2010-06-16  0:33   ` Nathan Williams
2010-07-27 23:12   ` Nathan Williams
2010-06-07 13:44 ` [Linux-ATM-General] " Chas Williams (CONTRACTOR)
2010-06-07 14:13   ` David Woodhouse
2010-06-07 15:10     ` Chas Williams (CONTRACTOR)
2010-06-07 16:04       ` David Woodhouse
2010-06-07 16:37         ` Chas Williams (CONTRACTOR)
2010-06-07 20:49           ` David Woodhouse
2010-06-08 15:05             ` Chas Williams (CONTRACTOR)
2010-06-08 16:25               ` David Woodhouse
2010-08-06 16:17 ` [PATCH] solos-pci: Fix race condition in tasklet RX handling David Woodhouse
2010-08-08  6:02   ` David Miller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1275053602.4355.38.camel@macbook.infradead.org \
    --to=dwmw2@infradead.org \
    --cc=davem@davemloft.net \
    --cc=linux-atm-general@lists.sourceforge.net \
    --cc=nathan@traverse.com.au \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).