iwlwifi: mvm: move TX PN assignment for TKIP to the driver
authorEliad Peller <eliad@wizery.com>
Sun, 14 Feb 2016 11:56:36 +0000 (13:56 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Wed, 24 Feb 2016 08:04:39 +0000 (09:04 +0100)
commit1ad4f639cc3e09d6c8402a0fcc592e2391683e31
tree3f87ad51286107613ff963ec5ede138bfaafa8f4
parentf8079d43cf0f1f0171606e75fcef6fe17bb183f2
iwlwifi: mvm: move TX PN assignment for TKIP to the driver

If protocol offloading is configured, the fw might generate some
frames (e.g. arp response) on its own during d3/d0i3.

On d3/d0i3 exit the driver queries the updated PN (if relevant),
and updates its keys (for the d0i3 case, this is done by
iwl_mvm_d0i3_exit_work(), which is scheduled on d0i3 exit)

While in d0i3, iwlmvm defers tx frames until d0i3 exit, and
then continues their processing.

This is problematic with TKIP, since the frame's PN has already
been set at this stage (in contrast to CCMP, where the PN is
being set only later on), so both the frame's PN and the upcoming
PN update (from d0i3 exit work) might be wrong.

Fix it by moving the TX PN assignment (for TKIP) to the driver,
similarly to CCMP.

Signed-off-by: Eliad Peller <eliadx.peller@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/intel/iwlwifi/mvm/d3.c
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
drivers/net/wireless/intel/iwlwifi/mvm/tx.c