projects
/
linux.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
1806c13
)
ath10k: Acquire tx_lock in tx error paths
author
Evan Green
<evgreen@chromium.org>
Thu, 4 Jun 2020 17:59:11 +0000
(10:59 -0700)
committer
Kalle Valo
<kvalo@codeaurora.org>
Tue, 9 Jun 2020 06:23:15 +0000
(09:23 +0300)
ath10k_htt_tx_free_msdu_id() has a lockdep assertion that htt->tx_lock
is held. Acquire the lock in a couple of error paths when calling that
function to ensure this condition is met.
Fixes:
6421969f248fd
("ath10k: refactor tx pending management")
Fixes:
e62ee5c381c59
("ath10k: Add support for htt_data_tx_desc_64 descriptor")
Signed-off-by: Evan Green <evgreen@chromium.org>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Link:
https://lore.kernel.org/r/20200604105901.1.I5b8b0c7ee0d3e51a73248975a9da61401b8f3900@changeid
drivers/net/wireless/ath/ath10k/htt_tx.c
patch
|
blob
|
history
diff --git
a/drivers/net/wireless/ath/ath10k/htt_tx.c
b/drivers/net/wireless/ath/ath10k/htt_tx.c
index
4fd10ac
..
bbe8695
100644
(file)
--- a/
drivers/net/wireless/ath/ath10k/htt_tx.c
+++ b/
drivers/net/wireless/ath/ath10k/htt_tx.c
@@
-1591,7
+1591,9
@@
static int ath10k_htt_tx_32(struct ath10k_htt *htt,
err_unmap_msdu:
dma_unmap_single(dev, skb_cb->paddr, msdu->len, DMA_TO_DEVICE);
err_free_msdu_id:
+ spin_lock_bh(&htt->tx_lock);
ath10k_htt_tx_free_msdu_id(htt, msdu_id);
+ spin_unlock_bh(&htt->tx_lock);
err:
return res;
}
@@
-1798,7
+1800,9
@@
static int ath10k_htt_tx_64(struct ath10k_htt *htt,
err_unmap_msdu:
dma_unmap_single(dev, skb_cb->paddr, msdu->len, DMA_TO_DEVICE);
err_free_msdu_id:
+ spin_lock_bh(&htt->tx_lock);
ath10k_htt_tx_free_msdu_id(htt, msdu_id);
+ spin_unlock_bh(&htt->tx_lock);
err:
return res;
}