diff options
author | Bogdan Hamciuc <bogdan.hamciuc@freescale.com> | 2013-02-08 14:36:01 (GMT) |
---|---|---|
committer | Fleming Andrew-AFLEMING <AFLEMING@freescale.com> | 2013-04-08 23:08:57 (GMT) |
commit | de8c106ba5a8b6afc496b018a1a604ba8a29e55a (patch) | |
tree | 649dcab3e8809052c8875ad2b5d0afca2b5c1a30 /net | |
parent | 61aefeeb94ac9c313ec3374165814be3e9eb1dc4 (diff) | |
download | linux-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')
-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 |