iwlwifi: mvm: change state when queueing agg start work
authorNaftali Goldstein <naftali.goldstein@intel.com>
Mon, 28 Aug 2017 08:51:05 +0000 (11:51 +0300)
committerLuca Coelho <luciano.coelho@intel.com>
Fri, 8 Sep 2017 08:43:38 +0000 (11:43 +0300)
commitbd800e41a3de5c7e56b2fd27088bdaf5e228d227
tree724b6e0a84bf13aab82f5aa42fcb41af909a09a5
parent0fe8bed6e37c259b85d123ef9667f972305c9d6b
iwlwifi: mvm: change state when queueing agg start work

Add a new state to enum iwl_mvm_agg_state, which is used between
queueing the work that starts tx aggregations and actually starting that
work (changing to state IWL_AGG_STARTING).
This solves a race where ieee80211_start_tx_ba_session is called a
second time, before the work queued by the first run has a chance to
change the agg_state. In this case the second call to
ieee80211_start_tx_ba_session returns an error, and the fallback is to
abort the ba session start.

Fixes: 482e48440a0e ("iwlwifi: mvm: change open and close criteria of a BA session")
Signed-off-by: Naftali Goldstein <naftali.goldstein@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
drivers/net/wireless/intel/iwlwifi/mvm/rs.c
drivers/net/wireless/intel/iwlwifi/mvm/sta.c
drivers/net/wireless/intel/iwlwifi/mvm/sta.h