• Sujith Manoharan's avatar
    ath9k: Fix TX filter usage · adfbda62
    Sujith Manoharan authored
    The TX filter bit for a station would be set by the HW
    when a frame is not acked. A frame would be completed with
    ATH9K_TXERR_FILT status only when the corresponding filter bit
    for the destination station is already set.
    
    Currently, un-acknowledged  packets are added to the pending queue
    and retried, but the "clear_dest_mask" bit in the descriptor is
    set only when the TX status has been ATH9K_TXERR_FILT. This results
    in packet loss and the log shows:
    
    wlan0: dropped TX filtered frame, queue_len=0 PS=0 @4309746071
    wlan0: dropped TX filtered frame, queue_len=0 PS=0 @4309746076
    wlan0: dropped TX filtered frame, queue_len=0 PS=0 @4309746377
    ...
    ...
    
    This issue can be resolved by making sure that the destination
    mask is cleared when the packet is being retried and the earlier
    TX status is ATH9K_TXERR_XRETRY.
    Signed-off-by: default avatarSujith Manoharan <c_manoha@qca.qualcomm.com>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    adfbda62
xmit.c 63.7 KB