• Felix Fietkau's avatar
    ath9k: fix pending tx frames accounting · d954cd77
    Felix Fietkau authored
    Packets originally buffered for the regular hardware tx queues can end
    up being transmitted through the U-APSD queue (via PS-Poll or U-APSD).
    When packets are dropped due to retransmit failures, the pending frames
    counter is not always updated properly.
    Fix this by keeping track of the queue that a frame was accounted for in
    the ath_frame_info struct, and using that on completion to decide
    whether the counter should be updated.
    This fixes some spurious transmit queue hangs.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: default avatarFelix Fietkau <nbd@openwrt.org>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    d954cd77
xmit.c 71.1 KB