iwlwifi: mvm: don't reserve queue in TVQM mode
authorSara Sharon <sara.sharon@intel.com>
Wed, 22 Feb 2017 17:40:55 +0000 (19:40 +0200)
committerLuca Coelho <luciano.coelho@intel.com>
Tue, 25 Apr 2017 19:37:47 +0000 (22:37 +0300)
The reserved queue is never used, save the trouble.

Signed-off-by: Sara Sharon <sara.sharon@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
drivers/net/wireless/intel/iwlwifi/mvm/sta.c
drivers/net/wireless/intel/iwlwifi/mvm/utils.c

index e502a6e6bf9025f104afeaac5ec7c1f4a66271f0..b5b7214a811ffbc543e25e08dc197bc6695eff2f 100644 (file)
@@ -1188,6 +1188,10 @@ static int iwl_mvm_reserve_sta_stream(struct iwl_mvm *mvm,
        int queue;
        bool using_inactive_queue = false, same_sta = false;
 
+       /* queue reserving is disabled on new TX path */
+       if (WARN_ON(iwl_mvm_has_new_tx_api(mvm)))
+               return 0;
+
        /*
         * Check for inactive queues, so we don't reach a situation where we
         * can't add a STA due to a shortage in queues that doesn't really exist
@@ -1387,7 +1391,7 @@ int iwl_mvm_add_sta(struct iwl_mvm *mvm,
                mvm_sta->dup_data = dup_data;
        }
 
-       if (iwl_mvm_is_dqa_supported(mvm)) {
+       if (iwl_mvm_is_dqa_supported(mvm) && !iwl_mvm_has_new_tx_api(mvm)) {
                ret = iwl_mvm_reserve_sta_stream(mvm, sta,
                                                 ieee80211_vif_type_p2p(vif));
                if (ret)
index 1dde05697c29ec0d957640026c15d33971f154b8..987edc98a203c19885a11f31609c156234e40d01 100644 (file)
@@ -592,15 +592,16 @@ int iwl_mvm_find_free_queue(struct iwl_mvm *mvm, u8 sta_id, u8 minq, u8 maxq)
 
        lockdep_assert_held(&mvm->queue_info_lock);
 
+       /* This should not be hit with new TX path */
+       if (WARN_ON(iwl_mvm_has_new_tx_api(mvm)))
+               return -ENOSPC;
+
        /* Start by looking for a free queue */
        for (i = minq; i <= maxq; i++)
                if (mvm->queue_info[i].hw_queue_refcount == 0 &&
                    mvm->queue_info[i].status == IWL_MVM_QUEUE_FREE)
                        return i;
 
-       if (iwl_mvm_has_new_tx_api(mvm))
-               return -ENOSPC;
-
        /*
         * If no free queue found - settle for an inactive one to reconfigure
         * Make sure that the inactive queue either already belongs to this STA,