Commit 833d9b97 authored by Andrei Otcheretianski's avatar Andrei Otcheretianski Committed by Emmanuel Grumbach

iwlwifi: mvm: Fix ROC removal

iwl_mvm_stop_roc removes TE only if running flag is set. This is not correct
since this flag is only set when the TE is started.
This resulted in a TE not being removed, when mac80211 believes that there are
no active ROCs.

Fixes: bf5da87f ("iwlwifi: mvm: add remove flow for AUX ROC time events")
Signed-off-by: default avatarAndrei Otcheretianski <andrei.otcheretianski@intel.com>
Reviewed-by: default avatarMatti Gottlieb <matti.gottlieb@intel.com>
Signed-off-by: default avatarEmmanuel Grumbach <emmanuel.grumbach@intel.com>
parent e7d3abab
...@@ -750,8 +750,7 @@ void iwl_mvm_stop_roc(struct iwl_mvm *mvm) ...@@ -750,8 +750,7 @@ void iwl_mvm_stop_roc(struct iwl_mvm *mvm)
* request * request
*/ */
list_for_each_entry(te_data, &mvm->time_event_list, list) { list_for_each_entry(te_data, &mvm->time_event_list, list) {
if (te_data->vif->type == NL80211_IFTYPE_P2P_DEVICE && if (te_data->vif->type == NL80211_IFTYPE_P2P_DEVICE) {
te_data->running) {
mvmvif = iwl_mvm_vif_from_mac80211(te_data->vif); mvmvif = iwl_mvm_vif_from_mac80211(te_data->vif);
is_p2p = true; is_p2p = true;
goto remove_te; goto remove_te;
...@@ -766,11 +765,9 @@ void iwl_mvm_stop_roc(struct iwl_mvm *mvm) ...@@ -766,11 +765,9 @@ void iwl_mvm_stop_roc(struct iwl_mvm *mvm)
* request * request
*/ */
list_for_each_entry(te_data, &mvm->aux_roc_te_list, list) { list_for_each_entry(te_data, &mvm->aux_roc_te_list, list) {
if (te_data->running) {
mvmvif = iwl_mvm_vif_from_mac80211(te_data->vif); mvmvif = iwl_mvm_vif_from_mac80211(te_data->vif);
goto remove_te; goto remove_te;
} }
}
remove_te: remove_te:
spin_unlock_bh(&mvm->time_event_lock); spin_unlock_bh(&mvm->time_event_lock);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment