]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
net/mlx4_en: Process all completions in RX rings after port goes up
authorErez Shitrit <erezsh@mellanox.com>
Thu, 27 Oct 2016 13:27:17 +0000 (16:27 +0300)
committerBen Hutchings <ben@decadent.org.uk>
Thu, 23 Feb 2017 03:54:25 +0000 (03:54 +0000)
commit301dc03b1b012012974c3ecd7c941df85ece5b33
treeb49982c952f925c50ac5fd6924f4d44c93dcc0a5
parent1cdb21d7343760132084a14e062414bba3d2e572
net/mlx4_en: Process all completions in RX rings after port goes up

commit 8d59de8f7bb3db296331c665779c653b0c8d13ba upstream.

Currently there is a race between incoming traffic and
initialization flow. HW is able to receive the packets
after INIT_PORT is done and unicast steering is configured.
Before we set priv->port_up NAPI is not scheduled and
receive queues become full. Therefore we never get
new interrupts about the completions.
This issue could happen if running heavy traffic during
bringing port up.
The resolution is to schedule NAPI once port_up is set.
If receive queues were full this will process all cqes
and release them.

Fixes: c27a02cd94d6 ("mlx4_en: Add driver for Mellanox ConnectX 10GbE NIC")
Signed-off-by: Erez Shitrit <erezsh@mellanox.com>
Signed-off-by: Eugenia Emantayev <eugenia@mellanox.com>
Signed-off-by: Tariq Toukan <tariqt@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
drivers/net/ethernet/mellanox/mlx4/en_netdev.c