summaryrefslogtreecommitdiffstats
path: root/net/sched/sch_codel.c
diff options
context:
space:
mode:
authorEric Dumazet <edumazet@google.com>2016-06-13 20:21:52 -0700
committerDavid S. Miller <davem@davemloft.net>2016-06-15 14:08:35 -0700
commitb3d7e2b29b226c986cbd4efcaf43ab3ff90e6fdb (patch)
tree9d1ccc8433d0e937b9ab0270241d02dfdf9ed934 /net/sched/sch_codel.c
parentf9aed311b682ca933ca78821cce3e4f1d69d4f56 (diff)
downloadlinux-b3d7e2b29b226c986cbd4efcaf43ab3ff90e6fdb.tar.gz
linux-b3d7e2b29b226c986cbd4efcaf43ab3ff90e6fdb.tar.bz2
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/sch_codel.c')
-rw-r--r--net/sched/sch_codel.c2
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);