mac80211: disable uAPSD if all ACs are under ACM
authorAlexander Bondar <alexander.bondar@intel.com>
Tue, 2 Apr 2013 12:30:14 +0000 (15:30 +0300)
committerJohannes Berg <johannes.berg@intel.com>
Mon, 8 Apr 2013 09:05:45 +0000 (11:05 +0200)
It's unlikely that an AP requires WMM mandatory admission control
for all access categories, and if it does then we still transmit
on the background AC without requesting admission. However, avoid
using uAPSD in this case since the implementation could run into
issues and might use other ACs etc.

Signed-off-by: Alexander Bondar <alexander.bondar@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/mlme.c

index 304d6cfc6250f05517f0b95f8383edf5691eec8b..43bfa81998118f73223a3a9c2b3e71aa7231552f 100644 (file)
@@ -4086,7 +4086,8 @@ int ieee80211_mgd_assoc(struct ieee80211_sub_if_data *sdata,
        rcu_read_unlock();
 
        if (bss->wmm_used && bss->uapsd_supported &&
-           (sdata->local->hw.flags & IEEE80211_HW_SUPPORTS_UAPSD)) {
+           (sdata->local->hw.flags & IEEE80211_HW_SUPPORTS_UAPSD) &&
+           sdata->wmm_acm != 0xff) {
                assoc_data->uapsd = true;
                ifmgd->flags |= IEEE80211_STA_UAPSD_ENABLED;
        } else {