ath10k: drop the TX packet which size exceed credit size for sdio
sdio chip use DMA buffer to receive TX packet from ath10k, and it has limitation of each buffer, if the packet size exceed the credit size, it will trigger error in firmware. Tested with QCA6174 SDIO with firmware WLAN.RMH.4.4.1-00017-QCARMSWP-1. Signed-off-by: Wen Gong <wgong@codeaurora.org> Signed-off-by: Kalle Valo <kvalo@codeaurora.org> Link: https://lore.kernel.org/r/20200422084719.3479-1-wgong@codeaurora.org
This commit is contained in:
parent
aac392d855
commit
8347784d6f
@ -846,6 +846,11 @@ int ath10k_htc_send_hl(struct ath10k_htc *htc,
|
||||
struct ath10k_htc_ep *ep = &htc->endpoint[eid];
|
||||
struct ath10k *ar = htc->ar;
|
||||
|
||||
if (sizeof(struct ath10k_htc_hdr) + skb->len > ep->tx_credit_size) {
|
||||
ath10k_dbg(ar, ATH10K_DBG_HTC, "tx exceed max len %d\n", skb->len);
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
ath10k_dbg(ar, ATH10K_DBG_HTC, "htc send hl eid %d bundle %d tx count %d len %d\n",
|
||||
eid, ep->bundle_tx, skb_queue_len(&ep->tx_req_head), skb->len);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user