wifi: iwlwifi: read txq->read_ptr under lock
authorJohannes Berg <johannes.berg@intel.com>
Tue, 19 Mar 2024 08:10:22 +0000 (10:10 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Mon, 25 Mar 2024 14:23:07 +0000 (15:23 +0100)
commitc2ace6300600c634553657785dfe5ea0ed688ac2
tree49daa49254a642c5f770826c3cc3d31990a9791a
parent045a5b645dd59929b0e05375f493cde3a0318271
wifi: iwlwifi: read txq->read_ptr under lock

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>
Link: https://msgid.link/20240319100755.bf4c62196504.I978a7ca56c6bd6f1bf42c15aa923ba03366a840b@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/intel/iwlwifi/queue/tx.c