]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - net/core/dev.c
pkt_sched: Add 'deactivated' state.
[linux-2.6-omap-h63xx.git] / net / core / dev.c
index 600bb23c4c2e3743239dc571c459fe3a5e8b19d5..d9e31f63aded8a8a7ac346b663884bf8c5e8f3d4 100644 (file)
@@ -1800,6 +1800,12 @@ gso:
 
                spin_lock(root_lock);
 
+               if (unlikely(test_bit(__QDISC_STATE_DEACTIVATED, &q->state))) {
+                       spin_unlock(root_lock);
+                       rc = NET_XMIT_DROP;
+                       goto out_kfree_skb;
+               }
+
                rc = qdisc_enqueue_root(skb, q);
                qdisc_run(q);
 
@@ -2084,7 +2090,8 @@ static int ing_filter(struct sk_buff *skb)
        q = rxq->qdisc;
        if (q != &noop_qdisc) {
                spin_lock(qdisc_lock(q));
-               result = qdisc_enqueue_root(skb, q);
+               if (likely(!test_bit(__QDISC_STATE_DEACTIVATED, &q->state)))
+                       result = qdisc_enqueue_root(skb, q);
                spin_unlock(qdisc_lock(q));
        }