• Felix Fietkau's avatar
    ath9k: fix queue stop/start based on the number of pending frames · 84642d6b
    Felix Fietkau authored
    Because there is a limited number of tx buffers available, once the
    queue has been filled to a certain point, ath9k needs to stop accepting
    new frames from mac80211. In order to prevent a full WMM queue from
    stopping another queue with fewer frames, this patch limits the number
    of queued frames to a quarter of the total available tx buffers, minus
    some reserved frames to be used for other purposes (e.g. beacons).
    
    Because tx buffers are reserved for frames when they're staged in
    software queues as well, the actual queue depth cannot be used for
    this, so this patch stores a reference to the tx queue in the ath_buf
    struct and keeps track of the total number of pending frames.
    Signed-off-by: default avatarFelix Fietkau <nbd@openwrt.org>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    84642d6b
main.c 47.3 KB