Patch "iwlwifi: mvm: fix packet injection" has been added to the 4.14-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
iwlwifi: mvm: fix packet injection
to the 4.14-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
iwlwifi-mvm-fix-packet-injection.patch
and it can be found in the queue-4.14 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
b13f43a48571f0cd0fda271b5046b65f1f268db5Mon Sep 17 00:00:00 2001
From: Emmanuel Grumbach <[email protected]>
Date: Sun, 19 Nov 2017 10:35:14 +0200
Subject: iwlwifi: mvm: fix packet injection
From: Emmanuel Grumbach <[email protected]>
commit b13f43a48571f0cd0fda271b5046b65f1f268db5 upstream.
We need to have a station and a queue for the monitor interface to be able to inject traffic. We used to have this traffic routed to the auxiliary queue, but this queue isn't scheduled for the station we had linked to the monitor vif.
Allocate a new queue, link it to the monitor vif's station and make that queue use the BE fifo.
This fixes https://bugzilla.kernel.org/show_bug.cgi?id=196715
--- drivers/net/wireless/intel/iwlwifi/fw/api/txq.h | 4 + drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c | 2 drivers/net/wireless/intel/iwlwifi/mvm/mvm.h | 1 drivers/net/wireless/intel/iwlwifi/mvm/ops.c | 1 drivers/net/wireless/intel/iwlwifi/mvm/sta.c | 53 ++++++++++++++++------ drivers/net/wireless/intel/iwlwifi/mvm/tx.c | 3 - 6 files changed, 49 insertions(+), 15 deletions(-)
drivers/net/wireless/intel/iwlwifi/fw/api/txq.h +4 -0
@@ -68,6 +68,9 @@* @IWL_MVM_DQA_CMD_QUEUE: a queue reserved for sending HCMDs to the FW * @IWL_MVM_DQA_AUX_QUEUE: a queue reserved for aux frames * @IWL_MVM_DQA_P2P_DEVICE_QUEUE: a queue reserved for P2P device frames +* @IWL_MVM_DQA_INJECT_MONITOR_QUEUE: a queue reserved for injection using +* monitor mode. Note this queue is the same as the queue for P2P device +* but we can't have active monitor mode along with P2P device anyway. * @IWL_MVM_DQA_GCAST_QUEUE: a queue reserved for P2P GO/SoftAP GCAST frames * @IWL_MVM_DQA_BSS_CLIENT_QUEUE: a queue reserved for BSS activity, to ensure * that we are never left without the possibility to connect to an AP.
@@ -87,6 +90,7 @@ enum iwl_mvm_dqa_txq {IWL_MVM_DQA_CMD_QUEUE =0 ,IWL_MVM_DQA_AUX_QUEUE =1 ,IWL_MVM_DQA_P2P_DEVICE_QUEUE =2 , +IWL_MVM_DQA_INJECT_MONITOR_QUEUE =2 ,IWL_MVM_DQA_GCAST_QUEUE =3 ,IWL_MVM_DQA_BSS_CLIENT_QUEUE =4 , IWL_MVM_DQA_MIN_MGMT_QUEUE = 5,
drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c +1 -1
@@ -787,7 +787,7 @@ static int iwl_mvm_mac_ctxt_cmd_listener u32 action) {struct iwl_mac_ctx_cmd cmd = {}; -u32 tfd_queue_msk =0 ; +u32 tfd_queue_msk =BIT (mvm->snif_queue);int ret;WARN_ON (vif->type !=NL80211_IFTYPE_MONITOR );
drivers/net/wireless/intel/iwlwifi/mvm/mvm.h +1 -0
@@ -954,6 +954,7 @@ struct iwl_mvm {/* Tx queues */ u16 aux_queue; +u16 snif_queue;u16 probe_queue;u16 p2p_dev_queue;
drivers/net/wireless/intel/iwlwifi/mvm/ops.c +1 -0
@@ -622,6 +622,7 @@ iwl_op_mode_mvm_start(struct iwl_trans * mvm->fw_restart = iwlwifi_mod_params.fw_restart ?-1 :0 ; mvm->aux_queue =IWL_MVM_DQA_AUX_QUEUE ; + mvm->snif_queue =IWL_MVM_DQA_INJECT_MONITOR_QUEUE ; mvm->probe_queue =IWL_MVM_DQA_AP_PROBE_RESP_QUEUE ; mvm->p2p_dev_queue =IWL_MVM_DQA_P2P_DEVICE_QUEUE ;
drivers/net/wireless/intel/iwlwifi/mvm/sta.c +40 -13
99 lines not on this page · raw message
drivers/net/wireless/intel/iwlwifi/mvm/tx.c +2 -1
@@ -657,7 +657,8 @@ int iwl_mvm_tx_skb_non_sta(struct iwl_mvif (ap_sta_id !=IWL_MVM_INVALID_STA ) sta_id = ap_sta_id; }else if (info.control.vif->type ==NL80211_IFTYPE_MONITOR ) { - queue = mvm->aux_queue; + queue = mvm->snif_queue; + sta_id = mvm->snif_sta.sta_id; } }
Patches currently in stable-queue which might be from [email protected] are
queue-4.14/iwlwifi-mvm-fix-packet-injection.patch queue-4.14/iwlwifi-mvm-don-t-use-transmit-queue-hang-detection-when-it-is-not-possible.patch