• Felix Fietkau's avatar
    ath9k: prevent aggregation session deadlocks · 08c96abd
    Felix Fietkau authored
    Waiting for all subframes of an existing aggregation session to drain
    before allowing mac80211 to start a new one is fragile and deadlocks
    caused by this behavior have been observed.
    
    Since mac80211 has proper synchronization for aggregation session
    start/stop handling, a better approach to session handling is to simply
    allow mac80211 to start a new session at any time. This requires
    changing the code to discard any packets outside of the BlockAck window
    in the A-MPDU software retry code.
    
    This patch implements the above and also simplifies the code.
    Signed-off-by: default avatarFelix Fietkau <nbd@openwrt.org>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    08c96abd
xmit.c 62 KB