diff options
-rw-r--r-- | net/core/dev.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/net/core/dev.c b/net/core/dev.c index 454b151..619a00e 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -2674,6 +2674,11 @@ int dev_queue_xmit(struct sk_buff *skb) skb_update_prio(skb); txq = netdev_pick_tx(dev, skb); + if ((dev->features & NETIF_F_HW_QDISC) && + likely(!netif_tx_queue_stopped(txq))) { + rc = dev_hard_start_xmit(skb, dev, txq); + goto out; + } q = rcu_dereference_bh(txq->qdisc); #ifdef CONFIG_NET_CLS_ACT |