• Emmanuel Grumbach's avatar
    iwlwifi: audit single frames from AGG queue in RS · c3e5d718
    Emmanuel Grumbach authored
    The rate scaling won't treat the information in a frame
    with IEEE80211_TX_CTL_AMPDU set if IEEE80211_TX_STAT_AMPDU
    is cleared. But all the frames coming from an AGG tx queue
    have IEEE80211_TX_CTL_AMPDU set, and IEEE80211_TX_STAT_AMPDU
    is set only if the frame was sent in an AMPDU.
    This means that all the data in frames in AGG tx queues that
    aren't sent as an AMPDU is thrown away.
    This is even more harmful when in bad link conditions, the
    frames are sent in an AMPDU and then finally sent as single
    frame. So a lot of failures weren't reported and the rate
    scaling got stuck in high rates leading to very poor
    connectivity.
    
    Fix that by clearing IEEE80211_TX_CTL_AMPDU when the frame
    isn't part of an AMPDU.
    
    This bug was introduced by
    
    2eb81a40
    iwlwifi: don't clear CTL_AMPDU on frame status
    
    This fix basically reverts the aforementioned commit.
    Signed-off-by: default avatarEmmanuel Grumbach <emmanuel.grumbach@intel.com>
    Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
    c3e5d718
tx.c 39.4 KB