aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ath/ath10k/htt_tx.c
diff options
context:
space:
mode:
authorMichal Kazior <michal.kazior@tieto.com>2015-08-19 07:10:43 -0400
committerKalle Valo <kvalo@qca.qualcomm.com>2015-08-26 04:04:44 -0400
commit5e55e3cbd1042cffa6249f22c10585e63f8a29bf (patch)
tree625a8b7976365f47aee86ea36e353eccb1b9f85b /drivers/net/wireless/ath/ath10k/htt_tx.c
parent503422d95248c1d9698735bb5803b70aa51b18ef (diff)
ath10k: fix dma_mapping_error() handling
The function returns 1 when DMA mapping fails. The driver would return bogus values and could possibly confuse itself if DMA failed. Fixes: 767d34fc67af ("ath10k: remove DMA mapping wrappers") Reported-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Michal Kazior <michal.kazior@tieto.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
Diffstat (limited to 'drivers/net/wireless/ath/ath10k/htt_tx.c')
-rw-r--r--drivers/net/wireless/ath/ath10k/htt_tx.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/net/wireless/ath/ath10k/htt_tx.c b/drivers/net/wireless/ath/ath10k/htt_tx.c
index 704bb5e07193..43aa5e2d1b87 100644
--- a/drivers/net/wireless/ath/ath10k/htt_tx.c
+++ b/drivers/net/wireless/ath/ath10k/htt_tx.c
@@ -442,8 +442,10 @@ int ath10k_htt_mgmt_tx(struct ath10k_htt *htt, struct sk_buff *msdu)
442 skb_cb->paddr = dma_map_single(dev, msdu->data, msdu->len, 442 skb_cb->paddr = dma_map_single(dev, msdu->data, msdu->len,
443 DMA_TO_DEVICE); 443 DMA_TO_DEVICE);
444 res = dma_mapping_error(dev, skb_cb->paddr); 444 res = dma_mapping_error(dev, skb_cb->paddr);
445 if (res) 445 if (res) {
446 res = -EIO;
446 goto err_free_txdesc; 447 goto err_free_txdesc;
448 }
447 449
448 skb_put(txdesc, len); 450 skb_put(txdesc, len);
449 cmd = (struct htt_cmd *)txdesc->data; 451 cmd = (struct htt_cmd *)txdesc->data;
@@ -533,8 +535,10 @@ int ath10k_htt_tx(struct ath10k_htt *htt, struct sk_buff *msdu)
533 skb_cb->paddr = dma_map_single(dev, msdu->data, msdu->len, 535 skb_cb->paddr = dma_map_single(dev, msdu->data, msdu->len,
534 DMA_TO_DEVICE); 536 DMA_TO_DEVICE);
535 res = dma_mapping_error(dev, skb_cb->paddr); 537 res = dma_mapping_error(dev, skb_cb->paddr);
536 if (res) 538 if (res) {
539 res = -EIO;
537 goto err_free_txbuf; 540 goto err_free_txbuf;
541 }
538 542
539 switch (skb_cb->txmode) { 543 switch (skb_cb->txmode) {
540 case ATH10K_HW_TXRX_RAW: 544 case ATH10K_HW_TXRX_RAW: