iwlwifi: mvm: kill INACTIVE queue state
authorJohannes Berg <johannes.berg@intel.com>
Wed, 4 Jul 2018 21:02:14 +0000 (23:02 +0200)
committerLuca Coelho <luciano.coelho@intel.com>
Mon, 8 Oct 2018 07:49:22 +0000 (10:49 +0300)
commit724fe7710ac5f4289886b90060ed67e3a4bdd584
tree0fb98f06d15a063ad169a32f6e2639f8a768dbc3
parentc20e08b0d6ed2a641a5217ccfaf8b616bbba869e
iwlwifi: mvm: kill INACTIVE queue state

We don't really need this state: instead of having an inactive
state where we can awaken zombie queues again if needed, just
keep them in their normal state unless a new queue is actually
needed and there's no other way of getting one.

We do this here by making the inactivity check not free queues
unless instructed that we now really need to allocate one to a
specific station, and in that case it'll just free the queue
immediately, without doing any inactivity step inbetween.

The only downside is a little bit more processing in this case,
but the code complexity is lower.

Additionally, this fixes a corner case: due to the way the code
worked, we could only ever reuse an inactive queue if it was
the reserved queue for a station, as iwl_mvm_find_free_queue()
would never consider returning an inactive queue.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
drivers/net/wireless/intel/iwlwifi/mvm/mvm.h
drivers/net/wireless/intel/iwlwifi/mvm/sta.c
drivers/net/wireless/intel/iwlwifi/mvm/sta.h
drivers/net/wireless/intel/iwlwifi/mvm/tx.c