]> git.baikalelectronics.ru Git - kernel.git/commit
net/mlx4_core: Avoid command timeouts during VF driver device shutdown
authorJack Morgenstein <jackm@dev.mellanox.co.il>
Mon, 30 Jan 2017 13:11:45 +0000 (15:11 +0200)
committerDavid S. Miller <davem@davemloft.net>
Mon, 30 Jan 2017 20:45:27 +0000 (15:45 -0500)
commit4c9a94bb77ccc3d6a55b78f9ff6861015e222a2c
treeba9f169698d23cc8623eb70aeadcfea197dbc37e
parent3f88a5c8f9889a4cab30c2ff9a3662b62e55302e
net/mlx4_core: Avoid command timeouts during VF driver device shutdown

Some Hypervisors detach VFs from VMs by instantly causing an FLR event
to be generated for a VF.

In the mlx4 case, this will cause that VF's comm channel to be disabled
before the VM has an opportunity to invoke the VF device's "shutdown"
method.

The result is that the VF driver on the VM will experience a command
timeout during the shutdown process when the Hypervisor does not deliver
a command-completion event to the VM.

To avoid FW command timeouts on the VM when the driver's shutdown method
is invoked, we detect the absence of the VF's comm channel at the very
start of the shutdown process. If the comm-channel has already been
disabled, we cause all FW commands during the device shutdown process to
immediately return success (and thus avoid all command timeouts).

Signed-off-by: Jack Morgenstein <jackm@dev.mellanox.co.il>
Signed-off-by: Tariq Toukan <tariqt@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlx4/catas.c
drivers/net/ethernet/mellanox/mlx4/intf.c
drivers/net/ethernet/mellanox/mlx4/mlx4.h