aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/mvm/mvm.h
diff options
context:
space:
mode:
authorArik Nemtsov <arik@wizery.com>2015-01-22 07:24:44 -0500
committerEmmanuel Grumbach <emmanuel.grumbach@intel.com>2015-02-01 08:57:22 -0500
commitb9dccdb33c4dc86922d025d02e91715ad9510732 (patch)
treefaf8f78fe4483cc81888f0a50029ff5b6ad8db6c /drivers/net/wireless/iwlwifi/mvm/mvm.h
parent5cb1270143668fa72007b52a8be6b4aa2c182809 (diff)
iwlwifi: mvm: ignore stale TDLS ch-switch responses
During out-of-channel activities (e.g. scan) TDLS ch-switch responses from a peer are kept in FW. These packets arrive only after the out-of-channel activity is complete, which can be in the order of several seconds. Since TDLS ch-sw has no dialog-token-like mechanism for distinguishing sessions, use the GP2 time of the incoming ch-switch response to discern validity. For this purpose record the GP2 time of an outgoing TDLS ch-sw request and compare to the Rx time of the ch-sw response. The methods works in practice since the GP2 time of FW-deferred Rx is accurate and contains the real Rx timestamp. Signed-off-by: Arik Nemtsov <arikx.nemtsov@intel.com> Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/mvm/mvm.h')
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/mvm.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/net/wireless/iwlwifi/mvm/mvm.h b/drivers/net/wireless/iwlwifi/mvm/mvm.h
index fc80b7b43b21..ed097268a1bc 100644
--- a/drivers/net/wireless/iwlwifi/mvm/mvm.h
+++ b/drivers/net/wireless/iwlwifi/mvm/mvm.h
@@ -798,6 +798,9 @@ struct iwl_mvm {
798 struct cfg80211_chan_def chandef; 798 struct cfg80211_chan_def chandef;
799 struct sk_buff *skb; /* ch sw template */ 799 struct sk_buff *skb; /* ch sw template */
800 u32 ch_sw_tm_ie; 800 u32 ch_sw_tm_ie;
801
802 /* timestamp of last ch-sw request sent (GP2 time) */
803 u32 sent_timestamp;
801 } peer; 804 } peer;
802 } tdls_cs; 805 } tdls_cs;
803 806