]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - net/mac80211/sta_info.c
net: bcm63xx_enet: Utilize phy_ethtool_nway_reset
[linux.git] / net / mac80211 / sta_info.c
index 78e9ecbc96e616d0f90228abb5bcda59147ea73f..236d47e76ced4f625039f063258deee20f6536ca 100644 (file)
@@ -709,7 +709,7 @@ static void __sta_info_recalc_tim(struct sta_info *sta, bool ignore_pending)
        for (ac = 0; ac < IEEE80211_NUM_ACS; ac++) {
                unsigned long tids;
 
-               if (ignore_for_tim & BIT(ac))
+               if (ignore_for_tim & ieee80211_ac_to_qos_mask[ac])
                        continue;
 
                indicate_tim |= !skb_queue_empty(&sta->tx_filtered[ac]) ||
@@ -1389,7 +1389,7 @@ ieee80211_sta_ps_more_data(struct sta_info *sta, u8 ignored_acs,
                return true;
 
        for (ac = 0; ac < IEEE80211_NUM_ACS; ac++) {
-               if (ignored_acs & BIT(ac))
+               if (ignored_acs & ieee80211_ac_to_qos_mask[ac])
                        continue;
 
                if (!skb_queue_empty(&sta->tx_filtered[ac]) ||
@@ -1414,7 +1414,7 @@ ieee80211_sta_ps_get_frames(struct sta_info *sta, int n_frames, u8 ignored_acs,
        for (ac = 0; ac < IEEE80211_NUM_ACS; ac++) {
                unsigned long tids;
 
-               if (ignored_acs & BIT(ac))
+               if (ignored_acs & ieee80211_ac_to_qos_mask[ac])
                        continue;
 
                tids = ieee80211_tids_for_ac(ac);
@@ -1482,7 +1482,7 @@ ieee80211_sta_ps_deliver_response(struct sta_info *sta,
                        BIT(find_highest_prio_tid(driver_release_tids));
 
        if (skb_queue_empty(&frames) && !driver_release_tids) {
-               int tid;
+               int tid, ac;
 
                /*
                 * For PS-Poll, this can only happen due to a race condition
@@ -1500,7 +1500,10 @@ ieee80211_sta_ps_deliver_response(struct sta_info *sta,
                 */
 
                /* This will evaluate to 1, 3, 5 or 7. */
-               tid = 7 - ((ffs(~ignored_acs) - 1) << 1);
+               for (ac = IEEE80211_AC_VO; ac < IEEE80211_NUM_ACS; ac++)
+                       if (ignored_acs & BIT(ac))
+                               continue;
+               tid = 7 - 2 * ac;
 
                ieee80211_send_null_response(sta, tid, reason, true, false);
        } else if (!driver_release_tids) {
@@ -1871,10 +1874,7 @@ int sta_info_move_state(struct sta_info *sta,
                        if (!sta->sta.support_p2p_ps)
                                ieee80211_recalc_p2p_go_ps_allowed(sta->sdata);
                } else if (sta->sta_state == IEEE80211_STA_AUTHORIZED) {
-                       if (sta->sdata->vif.type == NL80211_IFTYPE_AP ||
-                           (sta->sdata->vif.type == NL80211_IFTYPE_AP_VLAN &&
-                            !sta->sdata->u.vlan.sta))
-                               atomic_dec(&sta->sdata->bss->num_mcast_sta);
+                       ieee80211_vif_dec_num_mcast(sta->sdata);
                        clear_bit(WLAN_STA_AUTHORIZED, &sta->_flags);
                        ieee80211_clear_fast_xmit(sta);
                        ieee80211_clear_fast_rx(sta);
@@ -1882,10 +1882,7 @@ int sta_info_move_state(struct sta_info *sta,
                break;
        case IEEE80211_STA_AUTHORIZED:
                if (sta->sta_state == IEEE80211_STA_ASSOC) {
-                       if (sta->sdata->vif.type == NL80211_IFTYPE_AP ||
-                           (sta->sdata->vif.type == NL80211_IFTYPE_AP_VLAN &&
-                            !sta->sdata->u.vlan.sta))
-                               atomic_inc(&sta->sdata->bss->num_mcast_sta);
+                       ieee80211_vif_inc_num_mcast(sta->sdata);
                        set_bit(WLAN_STA_AUTHORIZED, &sta->_flags);
                        ieee80211_check_fast_xmit(sta);
                        ieee80211_check_fast_rx(sta);