diff options
author | Joel Stanley <joel@jms.id.au> | 2019-03-15 09:00:28 +0300 |
---|---|---|
committer | Joel Stanley <joel@jms.id.au> | 2019-03-15 09:01:07 +0300 |
commit | 9bd1e03005e74ecfe16f58143714f25793ae1c5d (patch) | |
tree | 557f67e781effd12a2fdf1816b757c61be8d832e /net/sched/sch_netem.c | |
parent | 7859d04be772a1d185de335a8e9d38ac03a89f3f (diff) | |
parent | ce194fa2b267e2018f42442347d90df01c4071d6 (diff) | |
download | linux-dev-4.19.tar.xz |
Merge tag 'v4.19.29' into dev-4.19dev-4.19
This is the 4.19.29 stable release
Signed-off-by: Joel Stanley <joel@jms.id.au>
Diffstat (limited to 'net/sched/sch_netem.c')
-rw-r--r-- | net/sched/sch_netem.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/net/sched/sch_netem.c b/net/sched/sch_netem.c index 74c0f656f28c..4dfe10b9f96c 100644 --- a/net/sched/sch_netem.c +++ b/net/sched/sch_netem.c @@ -440,6 +440,7 @@ static int netem_enqueue(struct sk_buff *skb, struct Qdisc *sch, int nb = 0; int count = 1; int rc = NET_XMIT_SUCCESS; + int rc_drop = NET_XMIT_DROP; /* Do not fool qdisc_drop_all() */ skb->prev = NULL; @@ -479,6 +480,7 @@ static int netem_enqueue(struct sk_buff *skb, struct Qdisc *sch, q->duplicate = 0; rootq->enqueue(skb2, rootq, to_free); q->duplicate = dupsave; + rc_drop = NET_XMIT_SUCCESS; } /* @@ -491,7 +493,7 @@ static int netem_enqueue(struct sk_buff *skb, struct Qdisc *sch, if (skb_is_gso(skb)) { segs = netem_segment(skb, sch, to_free); if (!segs) - return NET_XMIT_DROP; + return rc_drop; } else { segs = skb; } @@ -514,8 +516,10 @@ static int netem_enqueue(struct sk_buff *skb, struct Qdisc *sch, 1<<(prandom_u32() % 8); } - if (unlikely(sch->q.qlen >= sch->limit)) - return qdisc_drop_all(skb, sch, to_free); + if (unlikely(sch->q.qlen >= sch->limit)) { + qdisc_drop_all(skb, sch, to_free); + return rc_drop; + } qdisc_qstats_backlog_inc(sch, skb); |