diff options
author | Sara Sharon <sara.sharon@intel.com> | 2016-02-18 07:21:12 -0500 |
---|---|---|
committer | Luca Coelho <luciano.coelho@intel.com> | 2016-05-10 15:14:39 -0400 |
commit | 0636b938214c90c3a7d145ad86b64a061bb10c50 (patch) | |
tree | ea2d1714050c6405dc257869b62ead904e822906 /drivers/net/wireless/intel/iwlwifi/mvm/ops.c | |
parent | e5ed17929bf4177c523465af187ab70c9a454caa (diff) |
iwlwifi: mvm: implement driver RX queues sync command
mac80211 will call the driver whenever there is a race between
RSS queues and control path that requires a processing of all
pending frames in RSS queues.
Implement that by utilizing the internal notification mechanism:
queue a message to all queues. When the message is received on
a queue it decrements the atomic counter. This guarantees that
all pending frames in the RX queue were processed since the message
is in order inside the queue.
Signed-off-by: Sara Sharon <sara.sharon@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Diffstat (limited to 'drivers/net/wireless/intel/iwlwifi/mvm/ops.c')
-rw-r--r-- | drivers/net/wireless/intel/iwlwifi/mvm/ops.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/ops.c b/drivers/net/wireless/intel/iwlwifi/mvm/ops.c index 8bfb8e06a90c..7c6a5984105f 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/ops.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/ops.c | |||
@@ -586,6 +586,8 @@ iwl_op_mode_mvm_start(struct iwl_trans *trans, const struct iwl_cfg *cfg, | |||
586 | skb_queue_head_init(&mvm->d0i3_tx); | 586 | skb_queue_head_init(&mvm->d0i3_tx); |
587 | init_waitqueue_head(&mvm->d0i3_exit_waitq); | 587 | init_waitqueue_head(&mvm->d0i3_exit_waitq); |
588 | 588 | ||
589 | atomic_set(&mvm->queue_sync_counter, 0); | ||
590 | |||
589 | SET_IEEE80211_DEV(mvm->hw, mvm->trans->dev); | 591 | SET_IEEE80211_DEV(mvm->hw, mvm->trans->dev); |
590 | 592 | ||
591 | /* | 593 | /* |