]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - net/sched/sch_netem.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
[karo-tx-linux.git] / net / sched / sch_netem.c
index 6eac3d8800480a4c463ae8d3b78a4fcfeec8165b..aaaf0217533831e49878267d7767db7e18f110a3 100644 (file)
@@ -621,17 +621,17 @@ deliver:
 #endif
 
                        if (q->qdisc) {
+                               unsigned int pkt_len = qdisc_pkt_len(skb);
                                struct sk_buff *to_free = NULL;
                                int err;
 
                                err = qdisc_enqueue(skb, q->qdisc, &to_free);
                                kfree_skb_list(to_free);
-                               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;
                        }