From: Bjorn Andersson <[email protected]>

[ Upstream commit d43810b2c1808ac865aa1a2a2c291644bf95345c ]

The return value of dma_map_single() should be checked for errors using
dma_mapping_error() and the skb has been dequeued so it needs to be
freed.

This was found when enabling CONFIG_DMA_API_DEBUG and it warned about the
missing dma_mapping_error() call.

Fixes: 1807da49733e ("ath10k: wmi: add management tx by reference support over 
wmi")
Reported-by: Niklas Cassel <[email protected]>
Signed-off-by: Bjorn Andersson <[email protected]>
Signed-off-by: Kalle Valo <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
 drivers/net/wireless/ath/ath10k/mac.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/net/wireless/ath/ath10k/mac.c 
b/drivers/net/wireless/ath/ath10k/mac.c
index 174e0ce31c42b..448e3a8c33a6d 100644
--- a/drivers/net/wireless/ath/ath10k/mac.c
+++ b/drivers/net/wireless/ath/ath10k/mac.c
@@ -3844,8 +3844,10 @@ void ath10k_mgmt_over_wmi_tx_work(struct work_struct 
*work)
                             ar->running_fw->fw_file.fw_features)) {
                        paddr = dma_map_single(ar->dev, skb->data,
                                               skb->len, DMA_TO_DEVICE);
-                       if (!paddr)
+                       if (dma_mapping_error(ar->dev, paddr)) {
+                               ieee80211_free_txskb(ar->hw, skb);
                                continue;
+                       }
                        ret = ath10k_wmi_mgmt_tx_send(ar, skb, paddr);
                        if (ret) {
                                ath10k_warn(ar, "failed to transmit management 
frame by ref via WMI: %d\n",
-- 
2.20.1


_______________________________________________
ath10k mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/ath10k

Reply via email to