| From ca3b9c6b6d4db9a8ba5fc8b95664e75468c59f9f Mon Sep 17 00:00:00 2001 |
| From: Sara Sharon <sara.sharon@intel.com> |
| Date: Thu, 30 Jun 2016 16:14:02 +0300 |
| Subject: iwlwifi: mvm: call a different txq_enable function |
| |
| From: Sara Sharon <sara.sharon@intel.com> |
| |
| commit ca3b9c6b6d4db9a8ba5fc8b95664e75468c59f9f upstream. |
| |
| Since the SCD_QUEUE_CFG command was introduced the driver |
| calls iwl_trans_txq_enable_cfg() with a NULL for scd_cfg |
| parameter. |
| This makes the transport avoid writing to the SCD pointers, |
| since it can cause races with firmware, which is also accessing |
| the registers. |
| The transport only updates the write pointer in that case. |
| Fix a wrong call to iwl_trans_txq_enable() which caused a |
| scd_cfg parameter to be sent to transport, resulting with an |
| access to SCD registers. |
| |
| Fixes: 58f2cc57dc6a ("iwlwifi: mvm: support dqa-mode scd queue redirection") |
| Signed-off-by: Sara Sharon <sara.sharon@intel.com> |
| Signed-off-by: Luca Coelho <luciano.coelho@intel.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/net/wireless/intel/iwlwifi/mvm/sta.c | 4 +--- |
| 1 file changed, 1 insertion(+), 3 deletions(-) |
| |
| --- a/drivers/net/wireless/intel/iwlwifi/mvm/sta.c |
| +++ b/drivers/net/wireless/intel/iwlwifi/mvm/sta.c |
| @@ -576,9 +576,7 @@ static int iwl_mvm_scd_queue_redirect(st |
| ret); |
| |
| /* Make sure the SCD wrptr is correctly set before reconfiguring */ |
| - iwl_trans_txq_enable(mvm->trans, queue, iwl_mvm_ac_to_tx_fifo[ac], |
| - cmd.sta_id, tid, LINK_QUAL_AGG_FRAME_LIMIT_DEF, |
| - ssn, wdg_timeout); |
| + iwl_trans_txq_enable_cfg(mvm->trans, queue, ssn, NULL, wdg_timeout); |
| |
| /* TODO: Work-around SCD bug when moving back by multiples of 0x40 */ |
| |