• Jack Morgenstein's avatar
    net/mlx4_core: Avoid command timeouts during VF driver device shutdown · d585df1c
    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.
    
    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: default avatarJack Morgenstein <jackm@dev.mellanox.co.il>
    Signed-off-by: default avatarTariq Toukan <tariqt@mellanox.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    d585df1c
mlx4.h 41.8 KB