diff options
author | Eric Dumazet <edumazet@google.com> | 2016-06-14 05:21:52 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-06-15 23:08:35 +0200 |
commit | b3d7e2b29b226c986cbd4efcaf43ab3ff90e6fdb (patch) | |
tree | 9d1ccc8433d0e937b9ab0270241d02dfdf9ed934 /net/sched | |
parent | net_sched: sch_choke: defer skb freeing (diff) | |
download | linux-b3d7e2b29b226c986cbd4efcaf43ab3ff90e6fdb.tar.xz linux-b3d7e2b29b226c986cbd4efcaf43ab3ff90e6fdb.zip |
net_sched: sch_codel: defer skb freeing in codel_change()
codel_change() can use rtnl_qdisc_drop()
to defer expensive skb freeing after locks are released.
codel_reset() already has support for deferred skb freeing
because it uses qdisc_reset_queue()
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/sched')
-rw-r--r-- | net/sched/sch_codel.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/sched/sch_codel.c b/net/sched/sch_codel.c index dddf3bb65a32..c5bc424e3b3c 100644 --- a/net/sched/sch_codel.c +++ b/net/sched/sch_codel.c @@ -174,7 +174,7 @@ static int codel_change(struct Qdisc *sch, struct nlattr *opt) dropped += qdisc_pkt_len(skb); qdisc_qstats_backlog_dec(sch, skb); - qdisc_drop(skb, sch); + rtnl_qdisc_drop(skb, sch); } qdisc_tree_reduce_backlog(sch, qlen - sch->q.qlen, dropped); |