netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net-next] pkt_sched: sch_generic: Kfree gso_skb in qdisc_reset()
@ 2008-11-03  9:02 Jarek Poplawski
  2008-11-03  9:27 ` David Miller
  0 siblings, 1 reply; 4+ messages in thread
From: Jarek Poplawski @ 2008-11-03  9:02 UTC (permalink / raw)
  To: David Miller; +Cc: netdev

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>
---

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);
 

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH net-next] pkt_sched: sch_generic: Kfree gso_skb in qdisc_reset()
  2008-11-03  9:02 [PATCH net-next] pkt_sched: sch_generic: Kfree gso_skb in qdisc_reset() Jarek Poplawski
@ 2008-11-03  9:27 ` David Miller
  2008-11-03  9:48   ` [PATCH v2 " Jarek Poplawski
  0 siblings, 1 reply; 4+ messages in thread
From: David Miller @ 2008-11-03  9:27 UTC (permalink / raw)
  To: jarkao2; +Cc: netdev

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?

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH v2 net-next] pkt_sched: sch_generic: Kfree gso_skb in qdisc_reset()
  2008-11-03  9:27 ` David Miller
@ 2008-11-03  9:48   ` Jarek Poplawski
  2008-11-03 10:53     ` David Miller
  0 siblings, 1 reply; 4+ messages in thread
From: Jarek Poplawski @ 2008-11-03  9:48 UTC (permalink / raw)
  To: David Miller; +Cc: netdev

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>
---

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);
 

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH v2 net-next] pkt_sched: sch_generic: Kfree gso_skb in qdisc_reset()
  2008-11-03  9:48   ` [PATCH v2 " Jarek Poplawski
@ 2008-11-03 10:53     ` David Miller
  0 siblings, 0 replies; 4+ messages in thread
From: David Miller @ 2008-11-03 10:53 UTC (permalink / raw)
  To: jarkao2; +Cc: netdev

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.

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2008-11-03 10:53 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-11-03  9:02 [PATCH net-next] pkt_sched: sch_generic: Kfree gso_skb in qdisc_reset() Jarek Poplawski
2008-11-03  9:27 ` David Miller
2008-11-03  9:48   ` [PATCH v2 " Jarek Poplawski
2008-11-03 10:53     ` David Miller

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).