summaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/mellanox/mlx4/en_netdev.c
diff options
context:
space:
mode:
authorYevgeny Petrilin2012-04-23 04:18:39 +0200
committerDavid S. Miller2012-04-24 04:34:02 +0200
commite22979d96a55d24bc43247341a052ec1b3a7fda6 (patch)
treec82b4a05473b55a2526386ca4872945a2736e7ef /drivers/net/ethernet/mellanox/mlx4/en_netdev.c
parentmlx4_en: Added Ethtool support for TX Interrupt coalescing (diff)
downloadkernel-qcow2-linux-e22979d96a55d24bc43247341a052ec1b3a7fda6.tar.gz
kernel-qcow2-linux-e22979d96a55d24bc43247341a052ec1b3a7fda6.tar.xz
kernel-qcow2-linux-e22979d96a55d24bc43247341a052ec1b3a7fda6.zip
mlx4_en: Moving to Interrupts for TX completions
Moving to interrupts instead of polling fpr TX completions Avoiding situations where skb can be held in by the driver for a long time (till timer expires). The change is also necessary for supporting BQL. Removing comp_lock that was required because we could handle TX completions from several contexts: Interrupts, timer, polling. Now there is only interrupts Signed-off-by: Yevgeny Petrilin <yevgenyp@mellanox.co.il> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/mellanox/mlx4/en_netdev.c')
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/en_netdev.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/net/ethernet/mellanox/mlx4/en_netdev.c b/drivers/net/ethernet/mellanox/mlx4/en_netdev.c
index bfcfd8ae5f73..35ad0971939d 100644
--- a/drivers/net/ethernet/mellanox/mlx4/en_netdev.c
+++ b/drivers/net/ethernet/mellanox/mlx4/en_netdev.c
@@ -667,6 +667,10 @@ int mlx4_en_start_port(struct net_device *dev)
mlx4_en_deactivate_cq(priv, cq);
goto tx_err;
}
+
+ /* Arm CQ for TX completions */
+ mlx4_en_arm_cq(priv, cq);
+
/* Set initial ownership of all Tx TXBBs to SW (1) */
for (j = 0; j < tx_ring->buf_size; j += STAMP_STRIDE)
*((u32 *) (tx_ring->buf + j)) = 0xffffffff;