mac80211: check fast-xmit if IBSS STA QoS changed
authorJohannes Berg <johannes.berg@intel.com>
Mon, 11 May 2015 12:01:36 +0000 (14:01 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Mon, 11 May 2015 12:01:36 +0000 (14:01 +0200)
When an IBSS station gets QoS enabled after having been added,
check fast-xmit to make sure the QoS header gets added to the
cache properly and frames can go out with QoS and higher rates.

Reported-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/ibss.c

index bfef1b2150504fa9ed2a0b4b9a7b4b60e229f1de..21716af8bec32970a7c094b73124f5b5aa8c5d8c 100644 (file)
@@ -1031,8 +1031,11 @@ static void ieee80211_update_sta_info(struct ieee80211_sub_if_data *sdata,
                }
        }
 
-       if (sta && elems->wmm_info && local->hw.queues >= IEEE80211_NUM_ACS)
+       if (sta && !sta->sta.wme &&
+           elems->wmm_info && local->hw.queues >= IEEE80211_NUM_ACS) {
                sta->sta.wme = true;
+               ieee80211_check_fast_xmit(sta);
+       }
 
        if (sta && elems->ht_operation && elems->ht_cap_elem &&
            sdata->u.ibss.chandef.width != NL80211_CHAN_WIDTH_20_NOHT &&