diff mbox

[v2,net-next] pkt_sched: sch_generic: Kfree gso_skb in qdisc_reset()

Message ID 20081103094830.GA6030@ff.dom.local
State Accepted, archived
Headers show

Commit Message

Jarek Poplawski Nov. 3, 2008, 9:48 a.m. UTC
On Mon, Nov 03, 2008 at 01:27:55AM -0800, David Miller wrote:
...
> Isn't it necessary, or at least more tidy, to NULL out
> this value too?

Sure it is!

Thanks!
Jarek P.
-----------------------> take 2

pkt_sched: sch_generic: Kfree gso_skb in qdisc_reset()

Since gso_skb is re-used for qdisc_peek_dequeued(), and this skb is
counted in the qdisc->q.qlen, it has to be kfreed during qdisc_reset()
when qlen is zeroed.

With help from David S. Miller <davem@davemloft.net>

Signed-off-by: Jarek Poplawski <jarkao2@gmail.com>
---

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

David Miller Nov. 3, 2008, 10:53 a.m. UTC | #1
From: Jarek Poplawski <jarkao2@gmail.com>
Date: Mon, 3 Nov 2008 09:48:30 +0000

> pkt_sched: sch_generic: Kfree gso_skb in qdisc_reset()
> 
> Since gso_skb is re-used for qdisc_peek_dequeued(), and this skb is
> counted in the qdisc->q.qlen, it has to be kfreed during qdisc_reset()
> when qlen is zeroed.
> 
> With help from David S. Miller <davem@davemloft.net>
> 
> Signed-off-by: Jarek Poplawski <jarkao2@gmail.com>

Applied, thanks Jarek.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c
index 318c9f6..1192da2 100644
--- a/net/sched/sch_generic.c
+++ b/net/sched/sch_generic.c
@@ -542,6 +542,9 @@  void qdisc_reset(struct Qdisc *qdisc)
 
 	if (ops->reset)
 		ops->reset(qdisc);
+
+	kfree_skb(qdisc->gso_skb);
+	qdisc->gso_skb = NULL;
 }
 EXPORT_SYMBOL(qdisc_reset);