• F
    ath9k: clean up / fix aggregation session flush · 90fa539c
    Felix Fietkau 提交于
    The tid aggregation cleanup is a bit fragile, as it discards failed
    subframes in some places, and retransmits them in others. This could
    block the cleanup of an existing aggregation session, if a retransmission
    for a tid is issued, yet the tid is never scheduled again because of
    the cleanup state.
    
    Fix this by getting rid of as many subframes as possible, as early
    as possible, and immediately transmitting pending subframes as regular
    HT frames instead of waiting for the cleanup to complete.
    
    Drop all pending subframes while keeping track of the Block ACK window
    during aggregate tx completion to prevent sending out stale subframes,
    which could confuse the receiver side.
    Signed-off-by: NFelix Fietkau <nbd@openwrt.org>
    Cc: stable@kernel.org
    Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
    90fa539c
xmit.c 62.6 KB