From: Sara Sharon Date: Tue, 12 Sep 2017 08:06:24 +0000 (+0300) Subject: iwlwifi: mvm: refactor iwl_mvm_flush_no_vif X-Git-Tag: v4.19~2168^2~50^2~35^2~7 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=435d0827fe1f3eb7c47f3090c51d55f9dc729d94;p=platform%2Fkernel%2Flinux-rpi.git iwlwifi: mvm: refactor iwl_mvm_flush_no_vif This function is very indented and hard to read. Refactor it. Signed-off-by: Sara Sharon Signed-off-by: Luca Coelho --- diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c b/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c index 26caea6..941dbde 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c @@ -4002,6 +4002,8 @@ out_unlock: static void iwl_mvm_flush_no_vif(struct iwl_mvm *mvm, u32 queues, bool drop) { + int i; + if (drop) { if (iwl_mvm_has_new_tx_api(mvm)) /* TODO new tx api */ @@ -4009,32 +4011,28 @@ static void iwl_mvm_flush_no_vif(struct iwl_mvm *mvm, u32 queues, bool drop) "Need to implement flush TX queue\n"); else iwl_mvm_flush_tx_path(mvm, - iwl_mvm_flushable_queues(mvm) & queues, - 0); - } else { - if (iwl_mvm_has_new_tx_api(mvm)) { - struct ieee80211_sta *sta; - int i; + iwl_mvm_flushable_queues(mvm) & queues, 0); + return; + } - mutex_lock(&mvm->mutex); + if (!iwl_mvm_has_new_tx_api(mvm)) { + iwl_trans_wait_tx_queues_empty(mvm->trans, queues); + return; + } - for (i = 0; i < ARRAY_SIZE(mvm->fw_id_to_mac_id); i++) { - sta = rcu_dereference_protected( - mvm->fw_id_to_mac_id[i], - lockdep_is_held(&mvm->mutex)); - if (IS_ERR_OR_NULL(sta)) - continue; + mutex_lock(&mvm->mutex); + for (i = 0; i < ARRAY_SIZE(mvm->fw_id_to_mac_id); i++) { + struct ieee80211_sta *sta; - iwl_mvm_wait_sta_queues_empty(mvm, - iwl_mvm_sta_from_mac80211(sta)); - } + sta = rcu_dereference_protected(mvm->fw_id_to_mac_id[i], + lockdep_is_held(&mvm->mutex)); + if (IS_ERR_OR_NULL(sta)) + continue; - mutex_unlock(&mvm->mutex); - } else { - iwl_trans_wait_tx_queues_empty(mvm->trans, - queues); - } + iwl_mvm_wait_sta_queues_empty(mvm, + iwl_mvm_sta_from_mac80211(sta)); } + mutex_unlock(&mvm->mutex); } static void iwl_mvm_mac_flush(struct ieee80211_hw *hw,