projects
/
firefly-linux-kernel-4.4.55.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
arm64: dts: rockchip: add efuse device node for rk3328
[firefly-linux-kernel-4.4.55.git]
/
net
/
sched
/
sch_choke.c
diff --git
a/net/sched/sch_choke.c
b/net/sched/sch_choke.c
index 5ffb8b8337c7320368303e21a4bbd1fc0e4c5168..0a08c860eee4f35905907ce1eab38d6152c4487c 100644
(file)
--- a/
net/sched/sch_choke.c
+++ b/
net/sched/sch_choke.c
@@
-128,8
+128,8
@@
static void choke_drop_by_idx(struct Qdisc *sch, unsigned int idx)
choke_zap_tail_holes(q);
qdisc_qstats_backlog_dec(sch, skb);
choke_zap_tail_holes(q);
qdisc_qstats_backlog_dec(sch, skb);
+ qdisc_tree_reduce_backlog(sch, 1, qdisc_pkt_len(skb));
qdisc_drop(skb, sch);
qdisc_drop(skb, sch);
- qdisc_tree_decrease_qlen(sch, 1);
--sch->q.qlen;
}
--sch->q.qlen;
}
@@
-456,6
+456,7
@@
static int choke_change(struct Qdisc *sch, struct nlattr *opt)
old = q->tab;
if (old) {
unsigned int oqlen = sch->q.qlen, tail = 0;
old = q->tab;
if (old) {
unsigned int oqlen = sch->q.qlen, tail = 0;
+ unsigned dropped = 0;
while (q->head != q->tail) {
struct sk_buff *skb = q->tab[q->head];
while (q->head != q->tail) {
struct sk_buff *skb = q->tab[q->head];
@@
-467,11
+468,12
@@
static int choke_change(struct Qdisc *sch, struct nlattr *opt)
ntab[tail++] = skb;
continue;
}
ntab[tail++] = skb;
continue;
}
+ dropped += qdisc_pkt_len(skb);
qdisc_qstats_backlog_dec(sch, skb);
--sch->q.qlen;
qdisc_drop(skb, sch);
}
qdisc_qstats_backlog_dec(sch, skb);
--sch->q.qlen;
qdisc_drop(skb, sch);
}
- qdisc_tree_
decrease_qlen(sch, oqlen - sch->q.qlen
);
+ qdisc_tree_
reduce_backlog(sch, oqlen - sch->q.qlen, dropped
);
q->head = 0;
q->tail = tail;
}
q->head = 0;
q->tail = tail;
}