diff options
author | Yevgeny Petrilin | 2012-04-23 04:18:39 +0200 |
---|---|---|
committer | David S. Miller | 2012-04-24 04:34:02 +0200 |
commit | e22979d96a55d24bc43247341a052ec1b3a7fda6 (patch) | |
tree | c82b4a05473b55a2526386ca4872945a2736e7ef /drivers/net/ethernet/mellanox/mlx4/en_netdev.c | |
parent | mlx4_en: Added Ethtool support for TX Interrupt coalescing (diff) | |
download | kernel-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.c | 4 |
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; |