diff options
author | Michal Kazior <michal.kazior@tieto.com> | 2015-08-19 07:10:43 -0400 |
---|---|---|
committer | Kalle Valo <kvalo@qca.qualcomm.com> | 2015-08-26 04:04:44 -0400 |
commit | 5e55e3cbd1042cffa6249f22c10585e63f8a29bf (patch) | |
tree | 625a8b7976365f47aee86ea36e353eccb1b9f85b /drivers/net/wireless/ath/ath10k/htt_tx.c | |
parent | 503422d95248c1d9698735bb5803b70aa51b18ef (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.c | 8 |
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: |