• Jacob Keller's avatar
    fm10k: wait for queues to drain if stop_hw() fails once · 94877768
    Jacob Keller authored
    It turns out that sometimes during a reset the Tx queues will be
    temporarily stuck longer than .stop_hw() expects. Work around this issue
    by attempting to .stop_hw() first. If it tails, wait a number of
    attempts until the Tx queues appear to be drained. After this, attempt
    stop_hw() again. This ensures that we avoid waiting if we don't need to,
    such as during the first initialization of a VF, and give the proper
    amount of time necessary to recover from most situations. It is possible
    that the hardware is actually stuck. For PFs, this is usually fixed by
    a datapath reset. Unfortunately the VF cannot request a similar reset
    for itself.
    Signed-off-by: default avatarJacob Keller <jacob.e.keller@intel.com>
    Tested-by: default avatarKrishneil Singh <Krishneil.k.singh@intel.com>
    Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
    94877768
fm10k_pci.c 64.9 KB