• Lennert Buytenhek's avatar
    mwl8k: allow more time for transmit rings to drain · 7e1112d3
    Lennert Buytenhek authored
    Before issuing any firmware commands, we wait for the transmit rings
    to drain, to prevent control versus data path synchronization issues.
    In some cases, this can end up taking longer than the current hardcoded
    limit of 5 seconds, for example if the transmit rings are filled with
    packets for a host that has dropped off the air and we end up
    retransmitting every pending packet at the lowest rate a couple of
    times.
    
    This patch changes mwl8k_tx_wait_empty() to only bail out on timeout
    expiry if there was no change in the number of packets pending in the
    transmit rings during the waiting period.  If at least one transmit
    ring entry was reclaimed while we were waiting, we are apparently still
    making progress, and we'll allow waiting for another timeout period.
    Signed-off-by: default avatarLennert Buytenhek <buytenh@marvell.com>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    7e1112d3
mwl8k.c 85.6 KB