• Sven Eckelmann's avatar
    ath9k: Test for TID only in BlockAcks while checking tx status · 6fe7cc71
    Sven Eckelmann authored
    The ath9k xmit functions for AMPDUs can send frames as non-aggregate in case
    only one frame is currently available. The client will then answer using a
    normal Ack instead of a BlockAck. This acknowledgement has no TID stored and
    therefore the hardware is not able to provide us the corresponding TID.
    
    The TID set by the hardware in the tx status descriptor has to be seen as
    undefined and not as a valid TID value for normal acknowledgements. Doing
    otherwise results in a massive amount of retransmissions and stalls of
    connections.
    
    Users may experience low bandwidth and complete connection stalls in
    environments with transfers using multiple TIDs.
    
    This regression was introduced in b11b160d
    ("ath9k: validate the TID in the tx status information").
    Signed-off-by: default avatarSven Eckelmann <sven@narfation.org>
    Signed-off-by: default avatarSimon Wunderlich <siwu@hrz.tu-chemnitz.de>
    Cc: stable@vger.kernel.org
    Acked-by: default avatarFelix Fietkau <nbd@openwrt.org>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    6fe7cc71
xmit.c 64.1 KB