summaryrefslogtreecommitdiff
path: root/net/core
diff options
context:
space:
mode:
authorBogdan Hamciuc <bogdan.hamciuc@freescale.com>2013-02-08 14:36:01 (GMT)
committerFleming Andrew-AFLEMING <AFLEMING@freescale.com>2013-04-08 23:08:57 (GMT)
commitde8c106ba5a8b6afc496b018a1a604ba8a29e55a (patch)
tree649dcab3e8809052c8875ad2b5d0afca2b5c1a30 /net/core
parent61aefeeb94ac9c313ec3374165814be3e9eb1dc4 (diff)
downloadlinux-fsl-qoriq-de8c106ba5a8b6afc496b018a1a604ba8a29e55a.tar.xz
dpaa_eth: Use NETIF_F_HW_QDISC to by-pass Txq locking code
Make use of QMan's builtin locking and serialization capabilities in order to by-pass the need for Qdisc-based locking. Of course, this means we're losing Qdisc support entirely. Change-Id: Ide3a37fc50d47c0bdd81e63168118ac84b0034f8 Signed-off-by: Bogdan Hamciuc <bogdan.hamciuc@freescale.com> Reviewed-on: http://git.am.freescale.net:8181/1032 Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com> Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
Diffstat (limited to 'net/core')
-rw-r--r--net/core/dev.c5
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