diff mbox

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

Message ID 20081103090225.GB4698@ff.dom.local
State Superseded, archived
Delegated to: David Miller
Headers show

Commit Message

Jarek Poplawski Nov. 3, 2008, 9:02 a.m. UTC
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.

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, 9:27 a.m. UTC | #1
From: Jarek Poplawski <jarkao2@gmail.com>
Date: Mon, 3 Nov 2008 09:02:25 +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.
> 
> Signed-off-by: Jarek Poplawski <jarkao2@gmail.com>

Isn't it necessary, or at least more tidy, to NULL out
this value too?
--
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..cdf064b 100644
--- a/net/sched/sch_generic.c
+++ b/net/sched/sch_generic.c
@@ -542,6 +542,8 @@  void qdisc_reset(struct Qdisc *qdisc)
 
 	if (ops->reset)
 		ops->reset(qdisc);
+
+	kfree_skb(qdisc->gso_skb);
 }
 EXPORT_SYMBOL(qdisc_reset);