linux/drivers/net/wireless/iwlwifi
Emmanuel Grumbach 80d8565557 iwlwifi: mvm: free AGG queue when we STA is removed
When we stop an AGG session, we need to look at the sequence
numbers in in the private area of the ieee80211_sta struct.
This allows us to know is the queue is empty. To get access
to this private area, we use fw_id_to_mac_id that maps
sta_id (index of the STA in fw table) to ieee80211_sta.

When the STA exists in fw, but not in mac80211, we set
an ERR ptr in fw_id_to_mac_id.

But if we first set an ERR ptr to fw_id_to_mac_id, and only
then flush the queues, then we won't be able to access the
sequence numbers in ieee80211_sta from the reclaim flow.
This means that we will never be able to release an AGG
queue when a station is deleted.

So first, flush the queue. That will let the reclaim flow
call iwl_mvm_check_ratid_empty which will disable the AGG
queue as needed, and only then, remove the mapping in
fw_id_to_mac_id.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2013-03-06 16:47:00 +01:00
..
dvm iwlwifi: a few fixes in license 2013-03-06 16:46:59 +01:00
mvm iwlwifi: mvm: free AGG queue when we STA is removed 2013-03-06 16:47:00 +01:00
pcie iwlwifi: a few fixes in license 2013-03-06 16:46:59 +01:00
Kconfig iwlwifi: add the MVM driver 2013-02-01 11:27:15 +01:00
Makefile iwlwifi: add the MVM driver 2013-02-01 11:27:15 +01:00
iwl-agn-hw.h iwlwifi: a few fixes in license 2013-03-06 16:46:59 +01:00
iwl-config.h iwlwifi: a few fixes in license 2013-03-06 16:46:59 +01:00
iwl-csr.h iwlwifi: a few fixes in license 2013-03-06 16:46:59 +01:00
iwl-debug.c iwlwifi: a few fixes in license 2013-03-06 16:46:59 +01:00
iwl-debug.h iwlwifi: add the MVM driver 2013-02-01 11:27:15 +01:00
iwl-devtrace.c iwlwifi: update copyright 2013-01-24 13:00:55 +01:00
iwl-devtrace.h iwlwifi: rename IWL_MAX_CMD_TFDS to IWL_MAX_CMD_TBS_PER_TFD 2013-02-28 11:48:51 +01:00
iwl-drv.c iwlwifi: a few fixes in license 2013-03-06 16:46:59 +01:00
iwl-drv.h iwlwifi: a few fixes in license 2013-03-06 16:46:59 +01:00
iwl-eeprom-parse.c iwlwifi: a few fixes in license 2013-03-06 16:46:59 +01:00
iwl-eeprom-parse.h iwlwifi: a few fixes in license 2013-03-06 16:46:59 +01:00
iwl-eeprom-read.c iwlwifi: a few fixes in license 2013-03-06 16:46:59 +01:00
iwl-eeprom-read.h iwlwifi: a few fixes in license 2013-03-06 16:46:59 +01:00
iwl-fh.h iwlwifi: a few fixes in license 2013-03-06 16:46:59 +01:00
iwl-fw-file.h iwlwifi: a few fixes in license 2013-03-06 16:46:59 +01:00
iwl-fw.h iwlwifi: a few fixes in license 2013-03-06 16:46:59 +01:00
iwl-io.c iwlwifi: move register access lock into transport 2013-02-01 11:27:22 +01:00
iwl-io.h iwlwifi: add iwl_set_bits_mask to transport API 2013-02-01 11:27:22 +01:00
iwl-modparams.h iwlwifi: a few fixes in license 2013-03-06 16:46:59 +01:00
iwl-notif-wait.c iwlwifi: a few fixes in license 2013-03-06 16:46:59 +01:00
iwl-notif-wait.h iwlwifi: a few fixes in license 2013-03-06 16:46:59 +01:00
iwl-nvm-parse.c iwlwifi: a few fixes in license 2013-03-06 16:46:59 +01:00
iwl-nvm-parse.h iwlwifi: a few fixes in license 2013-03-06 16:46:59 +01:00
iwl-op-mode.h iwlwifi: a few fixes in license 2013-03-06 16:46:59 +01:00
iwl-phy-db.c iwlwifi: a few fixes in license 2013-03-06 16:46:59 +01:00
iwl-phy-db.h iwlwifi: a few fixes in license 2013-03-06 16:46:59 +01:00
iwl-prph.h iwlwifi: a few fixes in license 2013-03-06 16:46:59 +01:00
iwl-test.c iwlwifi: a few fixes in license 2013-03-06 16:46:59 +01:00
iwl-test.h iwlwifi: a few fixes in license 2013-03-06 16:46:59 +01:00
iwl-testmode.h iwlwifi: a few fixes in license 2013-03-06 16:46:59 +01:00
iwl-trans.h iwlwifi: a few fixes in license 2013-03-06 16:46:59 +01:00