|
@@ -650,14 +650,14 @@ deliver:
|
|
|
#endif
|
|
|
|
|
|
if (q->qdisc) {
|
|
|
+ unsigned int pkt_len = qdisc_pkt_len(skb);
|
|
|
int err = qdisc_enqueue(skb, q->qdisc);
|
|
|
|
|
|
- if (unlikely(err != NET_XMIT_SUCCESS)) {
|
|
|
- if (net_xmit_drop_count(err)) {
|
|
|
- qdisc_qstats_drop(sch);
|
|
|
- qdisc_tree_reduce_backlog(sch, 1,
|
|
|
- qdisc_pkt_len(skb));
|
|
|
- }
|
|
|
+ if (err != NET_XMIT_SUCCESS &&
|
|
|
+ net_xmit_drop_count(err)) {
|
|
|
+ qdisc_qstats_drop(sch);
|
|
|
+ qdisc_tree_reduce_backlog(sch, 1,
|
|
|
+ pkt_len);
|
|
|
}
|
|
|
goto tfifo_dequeue;
|
|
|
}
|