mirror of
https://github.com/torvalds/linux.git
synced 2024-12-23 11:21:33 +00:00
ath10k: htt: don't use txdone_fifo with SDIO
HTT High Latency (ATH10K_DEV_TYPE_HL) does not use txdone_fifo at all, we don't even initialise it by skipping ath10k_htt_tx_alloc_buf() in ath10k_htt_tx_start(). Because of this using QCA6174 SDIO ath10k_htt_rx_tx_compl_ind() will crash when it accesses unitialised txdone_fifo. So skip txdone_fifo when using High Latency mode. Tested with QCA6174 SDIO with firmware WLAN.RMH.4.4.1-00007-QCARMSWP-1. Co-developed-by: Wen Gong <wgong@codeaurora.org> Signed-off-by: Alagu Sankar <alagusankar@silex-india.com> Signed-off-by: Wen Gong <wgong@codeaurora.org> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
This commit is contained in:
parent
70736b9753
commit
e2a6b71128
@ -2277,7 +2277,9 @@ static void ath10k_htt_rx_tx_compl_ind(struct ath10k *ar,
|
||||
* Note that with only one concurrent reader and one concurrent
|
||||
* writer, you don't need extra locking to use these macro.
|
||||
*/
|
||||
if (!kfifo_put(&htt->txdone_fifo, tx_done)) {
|
||||
if (ar->bus_param.dev_type == ATH10K_DEV_TYPE_HL) {
|
||||
ath10k_txrx_tx_unref(htt, &tx_done);
|
||||
} else if (!kfifo_put(&htt->txdone_fifo, tx_done)) {
|
||||
ath10k_warn(ar, "txdone fifo overrun, msdu_id %d status %d\n",
|
||||
tx_done.msdu_id, tx_done.status);
|
||||
ath10k_txrx_tx_unref(htt, &tx_done);
|
||||
|
Loading…
Reference in New Issue
Block a user