iwlwifi: pcie: remove RSA race workaround
[linux-block.git] / drivers / net / wireless / intel / iwlwifi / mvm / mac-ctxt.c
index 99132ea16ede08e0e7ebd5f8734eeb0ab204e0fa..9e69b9d2012cca424abb5fffd4763670e09d90ce 100644 (file)
@@ -216,7 +216,8 @@ u32 iwl_mvm_mac_get_queues_mask(struct ieee80211_vif *vif)
                        qmask |= BIT(vif->hw_queue[ac]);
        }
 
-       if (vif->type == NL80211_IFTYPE_AP)
+       if (vif->type == NL80211_IFTYPE_AP ||
+           vif->type == NL80211_IFTYPE_ADHOC)
                qmask |= BIT(vif->cab_queue);
 
        return qmask;
@@ -471,8 +472,9 @@ static int iwl_mvm_mac_ctxt_allocate_resources(struct iwl_mvm *mvm,
                vif->cab_queue = IEEE80211_INVAL_HW_QUEUE;
        }
 
-       mvmvif->bcast_sta.sta_id = IWL_MVM_STATION_COUNT;
-       mvmvif->ap_sta_id = IWL_MVM_STATION_COUNT;
+       mvmvif->bcast_sta.sta_id = IWL_MVM_INVALID_STA;
+       mvmvif->mcast_sta.sta_id = IWL_MVM_INVALID_STA;
+       mvmvif->ap_sta_id = IWL_MVM_INVALID_STA;
 
        for (i = 0; i < NUM_IWL_MVM_SMPS_REQ; i++)
                mvmvif->smps_requests[i] = IEEE80211_SMPS_AUTOMATIC;
@@ -1441,6 +1443,7 @@ void iwl_mvm_rx_beacon_notif(struct iwl_mvm *mvm,
        struct iwl_mvm_tx_resp *beacon_notify_hdr;
        struct ieee80211_vif *csa_vif;
        struct ieee80211_vif *tx_blocked_vif;
+       struct agg_tx_status *agg_status;
        u16 status;
 
        lockdep_assert_held(&mvm->mutex);
@@ -1448,7 +1451,8 @@ void iwl_mvm_rx_beacon_notif(struct iwl_mvm *mvm,
        beacon_notify_hdr = &beacon->beacon_notify_hdr;
        mvm->ap_last_beacon_gp2 = le32_to_cpu(beacon->gp2);
 
-       status = le16_to_cpu(beacon_notify_hdr->status.status) & TX_STATUS_MSK;
+       agg_status = iwl_mvm_get_agg_status(mvm, beacon_notify_hdr);
+       status = le16_to_cpu(agg_status->status) & TX_STATUS_MSK;
        IWL_DEBUG_RX(mvm,
                     "beacon status %#x retries:%d tsf:0x%16llX gp2:0x%X rate:%d\n",
                     status, beacon_notify_hdr->failure_frame,