From: Krzysztof Mazur <krzysiek@podlesie.net>
To: David Woodhouse <dwmw2@infradead.org>
Cc: David Laight <David.Laight@ACULAB.COM>,
chas williams - CONTRACTOR <chas@cmf.nrl.navy.mil>,
davem@davemloft.net, netdev@vger.kernel.org,
linux-kernel@vger.kernel.org, nathan@traverse.com.au
Subject: Re: [PATCH] solos-pci: don't call vcc->pop() after pclose()
Date: Thu, 29 Nov 2012 14:20:21 +0100 [thread overview]
Message-ID: <20121129132021.GA15425@shrek.podlesie.net> (raw)
In-Reply-To: <1354193837.21562.159.camel@shinybook.infradead.org>
On Thu, Nov 29, 2012 at 12:57:17PM +0000, David Woodhouse wrote:
> On Thu, 2012-11-29 at 13:43 +0100, Krzysztof Mazur wrote:
> >
> > Removing packets from tx_queue is not needed. We can transmit packets
> > also after close. We just can't call vcc->pop() after close,
> > so we can just set SKB_CB(skb)->vcc of such packets to NULL so
> > fpga_tx() won't call vcc->pop().
>
> Your patch doesn't do that, does it? You'd want something like
>
> if (card->tx_skb[port] && SKB_CB(card->tx_skb[port]->vcc) == vcc)
> SKB_CB(card->tx_skb[port]->vcc) = NULL;
No, I want to process all queued packets, not just only those that
were already sent do card.
In that case we will need to remove other packets with that vcc
from queue, of couse we can still do that in the same loop, something
like:
if (SKB_CB(skb)->vcc == vcc) {
if (card->tx_skb[port] == skb) {
skb_get(skb);
solos_pop(SKB_CB(skb)->vcc, skb);
SKB_CB(skb)->vcc = NULL;
} else {
skb_unlink(skb, &card->tx_queue[port]);
solos_pop(SKB_CB(skb)->vcc, skb);
}
}
But I don't think that this optization is needed.
>
> Under card->tx_lock should suffice.
>
> And do we just *not* call the ->pop() on that skb ever? And hope that it
> doesn't screw up some other state somewhere? Like if we're doing MLPPP
> and I've implemented BQL for PPP... we might never call
> ppp_completed_queue() for that skb, so even though this *channel* is
> going away, it might still contribute towards the perceived queue on the
> overall PPP netdev?
>
> Failing to call ->pop() could cause memory leaks and other issues; I
> don't think it's reasonable. I think we *have* to wait for
> card->tx_skb[port] if it's for the VCC we're closing.
We are calling ->pop() in solos_pop() just before SKB_CB(skb)->vcc = NULL,
but we are doing that before we really finish processing that packet,
that's why we do skb_get(skb).
Krzysiek
next prev parent reply other threads:[~2012-11-29 13:20 UTC|newest]
Thread overview: 89+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-10-22 17:14 [PATCH v2 1/3] pppoatm: don't send frames to destroyed vcc Krzysztof Mazur
2012-10-22 17:14 ` [PATCH v2 2/3] pppoatm: fix race condition with destroying of vcc Krzysztof Mazur
2012-10-30 9:37 ` David Woodhouse
2012-10-30 19:07 ` Krzysztof Mazur
2012-10-30 19:52 ` Krzysztof Mazur
2012-10-31 10:16 ` David Woodhouse
2012-10-31 11:30 ` Krzysztof Mazur
2012-10-31 11:52 ` David Woodhouse
2012-10-30 14:26 ` Chas Williams (CONTRACTOR)
2012-10-30 18:20 ` Krzysztof Mazur
2012-10-31 9:41 ` Krzysztof Mazur
2012-10-31 10:22 ` Krzysztof Mazur
2012-10-31 20:03 ` chas williams - CONTRACTOR
2012-10-31 22:04 ` Krzysztof Mazur
2012-11-01 14:26 ` chas williams - CONTRACTOR
2012-11-02 9:40 ` Krzysztof Mazur
2012-11-02 10:54 ` Krzysztof Mazur
2012-10-22 17:14 ` [PATCH v2 3/3] pppoatm: protect against freeing " Krzysztof Mazur
2012-10-30 9:39 ` David Woodhouse
2012-10-30 19:26 ` Krzysztof Mazur
2012-11-27 17:16 ` David Woodhouse
2012-11-27 17:39 ` Krzysztof Mazur
2012-11-27 18:02 ` David Woodhouse
2012-11-27 18:28 ` Krzysztof Mazur
2012-11-28 20:18 ` Krzysztof Mazur
2012-11-28 20:44 ` David Woodhouse
2012-11-28 21:24 ` Krzysztof Mazur
2012-11-28 21:20 ` chas williams - CONTRACTOR
2012-11-28 21:45 ` [PATCH] atm: introduce vcc_pop() Krzysztof Mazur
2012-11-28 21:59 ` chas williams - CONTRACTOR
2012-11-28 22:10 ` Krzysztof Mazur
2012-11-28 22:33 ` [PATCH] atm: introduce vcc_pop_skb() Krzysztof Mazur
2012-12-03 13:22 ` David Woodhouse
2012-12-03 20:11 ` Krzysztof Mazur
2012-11-27 18:39 ` [PATCH v2 3/3] pppoatm: protect against freeing of vcc Krzysztof Mazur
2012-11-27 18:54 ` chas williams - CONTRACTOR
2012-11-27 22:36 ` [PATCH] solos-pci: Wait for pending TX to complete when releasing vcc David Woodhouse
2012-11-27 23:28 ` [PATCH] br2684: don't send frames on not-ready vcc David Woodhouse
2012-11-27 23:51 ` Krzysztof Mazur
2012-11-28 0:54 ` David Woodhouse
2012-11-28 8:08 ` Krzysztof Mazur
2012-11-28 9:58 ` David Woodhouse
2012-11-28 16:41 ` David Miller
2012-11-28 17:01 ` David Woodhouse
2012-11-28 17:04 ` David Miller
2012-11-28 17:09 ` David Woodhouse
2012-11-28 17:11 ` David Miller
2012-11-30 1:18 ` Nathan Williams
2012-11-30 1:34 ` David Woodhouse
2012-11-28 9:21 ` [PATCH v2 3/3] pppoatm: protect against freeing of vcc David Laight
2012-11-28 10:04 ` Krzysztof Mazur
2012-11-28 10:24 ` David Woodhouse
2012-11-28 15:18 ` chas williams - CONTRACTOR
2012-11-28 22:18 ` David Woodhouse
2012-11-29 10:57 ` Krzysztof Mazur
2012-11-29 11:55 ` David Woodhouse
2012-11-29 12:43 ` [PATCH] solos-pci: don't call vcc->pop() after pclose() Krzysztof Mazur
2012-11-29 12:57 ` David Woodhouse
2012-11-29 13:20 ` Krzysztof Mazur [this message]
2012-11-29 14:42 ` David Woodhouse
2012-11-29 14:55 ` Krzysztof Mazur
2012-11-29 14:41 ` chas williams - CONTRACTOR
2012-11-29 14:29 ` [PATCH v2 3/3] pppoatm: protect against freeing of vcc chas williams - CONTRACTOR
2012-11-29 15:09 ` Krzysztof Mazur
2012-11-29 15:47 ` David Woodhouse
2012-11-29 15:59 ` chas williams - CONTRACTOR
2012-11-29 16:24 ` David Woodhouse
2012-11-29 17:17 ` chas williams - CONTRACTOR
2012-11-29 18:11 ` David Woodhouse
2012-11-29 18:29 ` chas williams - CONTRACTOR
2012-11-29 22:17 ` David Woodhouse
2012-11-30 1:38 ` Chas Williams (CONTRACTOR)
2012-11-30 1:57 ` David Woodhouse
2012-11-30 8:25 ` David Woodhouse
2012-11-30 9:53 ` Krzysztof Mazur
2012-11-30 12:10 ` David Woodhouse
2012-11-30 16:23 ` David Woodhouse
2012-11-30 17:00 ` Krzysztof Mazur
2012-11-30 18:33 ` David Woodhouse
2012-11-30 17:12 ` chas williams - CONTRACTOR
2012-11-30 17:39 ` Krzysztof Mazur
2012-11-29 16:28 ` Krzysztof Mazur
2012-11-29 15:37 ` chas williams - CONTRACTOR
2012-11-29 15:59 ` David Woodhouse
2012-11-29 16:11 ` chas williams - CONTRACTOR
2012-10-23 6:52 ` [PATCH v2 1/3] pppoatm: don't send frames to destroyed vcc David Miller
2012-10-23 8:12 ` David Woodhouse
2012-10-30 9:35 ` David Woodhouse
2012-10-30 20:19 ` Krzysztof Mazur
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=20121129132021.GA15425@shrek.podlesie.net \
--to=krzysiek@podlesie.net \
--cc=David.Laight@ACULAB.COM \
--cc=chas@cmf.nrl.navy.mil \
--cc=davem@davemloft.net \
--cc=dwmw2@infradead.org \
--cc=linux-kernel@vger.kernel.org \
--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
all inboxes | Powered by JetHome®