• 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"
    method.
    
    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>
    4cbe4dac
cmd.c 91 KB