• Jack Morgenstein's avatar
    net/mlx4_core: Avoid delays during VF driver device shutdown · 4cbe4dac
    Jack Morgenstein authored
    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"
    For such Hypervisors, there is a race condition between the VF's
    shutdown method and its internal-error detection/reset thread.
    The internal-error detection/reset thread (which runs every 5 seconds) also
    detects a disabled comm channel. If the internal-error detection/reset
    flow wins the race, we still get delays (while that flow tries repeatedly
    to detect comm-channel recovery).
    The cited commit fixed the command timeout problem when the
    internal-error detection/reset flow loses the race.
    This commit avoids the unneeded delays when the internal-error
    detection/reset flow wins.
    Fixes: d585df1c
     ("net/mlx4_core: Avoid command timeouts during VF driver device shutdown")
    Signed-off-by: default avatarJack Morgenstein <jackm@dev.mellanox.co.il>
    Reported-by: default avatarSimon Xiao <sixiao@microsoft.com>
    Signed-off-by: default avatarTariq Toukan <tariqt@mellanox.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>