linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Miri Korenblit <miriam.rachel.korenblit@intel.com>
To: johannes@sipsolutions.net
Cc: linux-wireless@vger.kernel.org, Johannes Berg <johannes.berg@intel.com>
Subject: [PATCH 10/15] wifi: iwlwifi: read txq->read_ptr under lock
Date: Tue, 19 Mar 2024 10:10:22 +0200	[thread overview]
Message-ID: <20240319100755.bf4c62196504.I978a7ca56c6bd6f1bf42c15aa923ba03366a840b@changeid> (raw)
In-Reply-To: <20240319081027.3853611-1-miriam.rachel.korenblit@intel.com>

From: Johannes Berg <johannes.berg@intel.com>

If we read txq->read_ptr without lock, we can read the same
value twice, then obtain the lock, and reclaim from there
to two different places, but crucially reclaim the same
entry twice, resulting in the WARN_ONCE() a little later.
Fix that by reading txq->read_ptr under lock.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
---
 drivers/net/wireless/intel/iwlwifi/queue/tx.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/wireless/intel/iwlwifi/queue/tx.c b/drivers/net/wireless/intel/iwlwifi/queue/tx.c
index 33973a60d0bf..6229c785c845 100644
--- a/drivers/net/wireless/intel/iwlwifi/queue/tx.c
+++ b/drivers/net/wireless/intel/iwlwifi/queue/tx.c
@@ -1589,9 +1589,9 @@ void iwl_txq_reclaim(struct iwl_trans *trans, int txq_id, int ssn,
 		return;
 
 	tfd_num = iwl_txq_get_cmd_index(txq, ssn);
-	read_ptr = iwl_txq_get_cmd_index(txq, txq->read_ptr);
 
 	spin_lock_bh(&txq->lock);
+	read_ptr = iwl_txq_get_cmd_index(txq, txq->read_ptr);
 
 	if (!test_bit(txq_id, trans->txqs.queue_used)) {
 		IWL_DEBUG_TX_QUEUES(trans, "Q %d inactive - ignoring idx %d\n",
-- 
2.34.1


  parent reply	other threads:[~2024-03-19  8:11 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-19  8:10 [PATCH 00/15] wifi: iwlwifi: updates - 2024-03-19 Miri Korenblit
2024-03-19  8:10 ` [PATCH 01/15] wifi: iwlwifi: mvm: Introduce internal MLO passive scan Miri Korenblit
2024-03-19  8:10 ` [PATCH 02/15] wifi: iwlwifi: mvm: Add debugfs entry for triggering internal MLO scan Miri Korenblit
2024-03-19  8:10 ` [PATCH 03/15] wifi: iwlwifi: mvm: add debugfs for forcing unprotected ranging request Miri Korenblit
2024-03-19  8:10 ` [PATCH 04/15] wifi: iwlwifi: add a kunit test for PCI table duplicates Miri Korenblit
2024-03-19  8:10 ` [PATCH 05/15] wifi: iwlwifi: mvm: rfi: fix potential response leaks Miri Korenblit
2024-03-19  8:10 ` [PATCH 06/15] wifi: iwlwifi: mvm: support iwl_dev_tx_power_cmd_v8 Miri Korenblit
2024-03-19  8:10 ` [PATCH 07/15] wifi: iwlwifi: mvm: always apply 6 GHz probe limitations Miri Korenblit
2024-03-19  8:10 ` [PATCH 08/15] wifi: iwlwifi: fw: don't always use FW dump trig Miri Korenblit
2024-03-19  8:10 ` [PATCH 09/15] wifi: iwlwifi: fw: add clarifying comments about iwl_fwrt_dump_data Miri Korenblit
2024-03-19  8:10 ` Miri Korenblit [this message]
2024-03-19  8:10 ` [PATCH 11/15] wifi: iwlwifi: mvm: don't support puncturing in 5 GHz Miri Korenblit
2024-03-19  8:10 ` [PATCH 12/15] wifi: iwlwifi: remove 6 GHz NVM override Miri Korenblit
2024-03-19  8:10 ` [PATCH 13/15] wifi: iwlwifi: mvm: Do not warn on invalid link on scan complete Miri Korenblit
2024-03-19  8:10 ` [PATCH 14/15] wifi: iwlwifi: enable monitor on passive/inactive channels Miri Korenblit
2024-03-19  8:10 ` [PATCH 15/15] wifi: iwlwifi: mvm: allocate STA links only for active links Miri Korenblit

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240319100755.bf4c62196504.I978a7ca56c6bd6f1bf42c15aa923ba03366a840b@changeid \
    --to=miriam.rachel.korenblit@intel.com \
    --cc=johannes.berg@intel.com \
    --cc=johannes@sipsolutions.net \
    --cc=linux-wireless@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).