wifi: iwlwifi: mvm: don't send NDPs for new tx devices
authorEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Thu, 1 Feb 2024 14:17:27 +0000 (16:17 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Fri, 2 Feb 2024 13:37:26 +0000 (14:37 +0100)
New tx devices may have issues sending NDPs from the host.
Send a CQM event instead. If the AP is really gone, we will get a beacon
loss and disconnect.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Reviewed-by: Gregory Greenman <gregory.greenman@intel.com>
Reviewed-by: Berg, Johannes <johannes.berg@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://msgid.link/20240201155157.e95d53448e94.I0ec92f1ca56a62cd8c13390b9fe60e9a7e9411c7@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c

index c4f9612..bcf78cc 100644 (file)
@@ -1626,10 +1626,14 @@ void iwl_mvm_rx_missed_beacons_notif(struct iwl_mvm *mvm,
         * TODO: the threshold should be adjusted based on latency conditions,
         * and/or in case of a CS flow on one of the other AP vifs.
         */
-       if (rx_missed_bcon > IWL_MVM_MISSED_BEACONS_THRESHOLD_LONG)
+       if (rx_missed_bcon > IWL_MVM_MISSED_BEACONS_THRESHOLD_LONG) {
                iwl_mvm_connection_loss(mvm, vif, "missed beacons");
-       else if (rx_missed_bcon_since_rx > IWL_MVM_MISSED_BEACONS_THRESHOLD)
-               ieee80211_beacon_loss(vif);
+       } else if (rx_missed_bcon_since_rx > IWL_MVM_MISSED_BEACONS_THRESHOLD) {
+               if (!iwl_mvm_has_new_tx_api(mvm))
+                       ieee80211_beacon_loss(vif);
+               else
+                       ieee80211_cqm_beacon_loss_notify(vif, GFP_ATOMIC);
+       }
 
        iwl_dbg_tlv_time_point(&mvm->fwrt,
                               IWL_FW_INI_TIME_POINT_MISSED_BEACONS, &tp_data);