|
Takashi Iwai |
3d08ac |
From 6e8a8991e2103dcb6a9cff28f460390e8e360848 Mon Sep 17 00:00:00 2001
|
|
Takashi Iwai |
3d08ac |
From: Rakesh Pillai <pillair@codeaurora.org>
|
|
Takashi Iwai |
3d08ac |
Date: Fri, 25 Jan 2019 09:51:06 +0530
|
|
Takashi Iwai |
3d08ac |
Subject: [PATCH] ath10k: fix dma unmap direction for management frames
|
|
Takashi Iwai |
3d08ac |
Git-commit: 6e8a8991e2103dcb6a9cff28f460390e8e360848
|
|
Takashi Iwai |
3d08ac |
Patch-mainline: v5.1-rc1
|
|
Takashi Iwai |
3d08ac |
References: bsc#1111666
|
|
Takashi Iwai |
3d08ac |
|
|
Takashi Iwai |
3d08ac |
The management frames transmitted are dma mapped with
|
|
Takashi Iwai |
3d08ac |
direction TO_DEVICE, but incorrectly mapped with
|
|
Takashi Iwai |
3d08ac |
direction FROM_DEVICE during tx complete and error cases.
|
|
Takashi Iwai |
3d08ac |
|
|
Takashi Iwai |
3d08ac |
Fix the direction of dma during dma unmap of the
|
|
Takashi Iwai |
3d08ac |
transmitted management frames.
|
|
Takashi Iwai |
3d08ac |
|
|
Takashi Iwai |
3d08ac |
Tested HW: WCN3990
|
|
Takashi Iwai |
3d08ac |
Tested FW: WLAN.HL.2.0-01188-QCAHLSWMTPLZ-1
|
|
Takashi Iwai |
3d08ac |
|
|
Takashi Iwai |
3d08ac |
Fixes: 38a1390e02b7 ("ath10k: dma unmap mgmt tx buffer if wmi cmd send fails")
|
|
Takashi Iwai |
3d08ac |
Signed-off-by: Rakesh Pillai <pillair@codeaurora.org>
|
|
Takashi Iwai |
3d08ac |
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
|
Takashi Iwai |
3d08ac |
Acked-by: Takashi Iwai <tiwai@suse.de>
|
|
Takashi Iwai |
3d08ac |
|
|
Takashi Iwai |
3d08ac |
---
|
|
Takashi Iwai |
3d08ac |
drivers/net/wireless/ath/ath10k/mac.c | 4 ++--
|
|
Takashi Iwai |
3d08ac |
drivers/net/wireless/ath/ath10k/wmi.c | 4 ++--
|
|
Takashi Iwai |
3d08ac |
2 files changed, 4 insertions(+), 4 deletions(-)
|
|
Takashi Iwai |
3d08ac |
|
|
Takashi Iwai |
3d08ac |
diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c
|
|
Takashi Iwai |
3d08ac |
index e49b36752ba2..8c6c5152d416 100644
|
|
Takashi Iwai |
3d08ac |
--- a/drivers/net/wireless/ath/ath10k/mac.c
|
|
Takashi Iwai |
3d08ac |
+++ b/drivers/net/wireless/ath/ath10k/mac.c
|
|
Takashi Iwai |
3d08ac |
@@ -1,7 +1,7 @@
|
|
Takashi Iwai |
3d08ac |
/*
|
|
Takashi Iwai |
3d08ac |
* Copyright (c) 2005-2011 Atheros Communications Inc.
|
|
Takashi Iwai |
3d08ac |
* Copyright (c) 2011-2017 Qualcomm Atheros, Inc.
|
|
Takashi Iwai |
3d08ac |
- * Copyright (c) 2018, The Linux Foundation. All rights reserved.
|
|
Takashi Iwai |
3d08ac |
+ * Copyright (c) 2018-2019, The Linux Foundation. All rights reserved.
|
|
Takashi Iwai |
3d08ac |
*
|
|
Takashi Iwai |
3d08ac |
* Permission to use, copy, modify, and/or distribute this software for any
|
|
Takashi Iwai |
3d08ac |
* purpose with or without fee is hereby granted, provided that the above
|
|
Takashi Iwai |
3d08ac |
@@ -3863,7 +3863,7 @@ void ath10k_mgmt_over_wmi_tx_work(struct work_struct *work)
|
|
Takashi Iwai |
3d08ac |
ath10k_warn(ar, "failed to transmit management frame by ref via WMI: %d\n",
|
|
Takashi Iwai |
3d08ac |
ret);
|
|
Takashi Iwai |
3d08ac |
dma_unmap_single(ar->dev, paddr, skb->len,
|
|
Takashi Iwai |
3d08ac |
- DMA_FROM_DEVICE);
|
|
Takashi Iwai |
3d08ac |
+ DMA_TO_DEVICE);
|
|
Takashi Iwai |
3d08ac |
ieee80211_free_txskb(ar->hw, skb);
|
|
Takashi Iwai |
3d08ac |
}
|
|
Takashi Iwai |
3d08ac |
} else {
|
|
Takashi Iwai |
3d08ac |
diff --git a/drivers/net/wireless/ath/ath10k/wmi.c b/drivers/net/wireless/ath/ath10k/wmi.c
|
|
Takashi Iwai |
3d08ac |
index 971ff364d8b1..6509febc07cd 100644
|
|
Takashi Iwai |
3d08ac |
--- a/drivers/net/wireless/ath/ath10k/wmi.c
|
|
Takashi Iwai |
3d08ac |
+++ b/drivers/net/wireless/ath/ath10k/wmi.c
|
|
Takashi Iwai |
3d08ac |
@@ -1,7 +1,7 @@
|
|
Takashi Iwai |
3d08ac |
/*
|
|
Takashi Iwai |
3d08ac |
* Copyright (c) 2005-2011 Atheros Communications Inc.
|
|
Takashi Iwai |
3d08ac |
* Copyright (c) 2011-2017 Qualcomm Atheros, Inc.
|
|
Takashi Iwai |
3d08ac |
- * Copyright (c) 2018, The Linux Foundation. All rights reserved.
|
|
Takashi Iwai |
3d08ac |
+ * Copyright (c) 2018-2019, The Linux Foundation. All rights reserved.
|
|
Takashi Iwai |
3d08ac |
*
|
|
Takashi Iwai |
3d08ac |
* Permission to use, copy, modify, and/or distribute this software for any
|
|
Takashi Iwai |
3d08ac |
* purpose with or without fee is hereby granted, provided that the above
|
|
Takashi Iwai |
3d08ac |
@@ -2346,7 +2346,7 @@ static int wmi_process_mgmt_tx_comp(struct ath10k *ar, u32 desc_id,
|
|
Takashi Iwai |
3d08ac |
|
|
Takashi Iwai |
3d08ac |
msdu = pkt_addr->vaddr;
|
|
Takashi Iwai |
3d08ac |
dma_unmap_single(ar->dev, pkt_addr->paddr,
|
|
Takashi Iwai |
3d08ac |
- msdu->len, DMA_FROM_DEVICE);
|
|
Takashi Iwai |
3d08ac |
+ msdu->len, DMA_TO_DEVICE);
|
|
Takashi Iwai |
3d08ac |
info = IEEE80211_SKB_CB(msdu);
|
|
Takashi Iwai |
3d08ac |
|
|
Takashi Iwai |
3d08ac |
if (status)
|
|
Takashi Iwai |
3d08ac |
--
|
|
Takashi Iwai |
3d08ac |
2.16.4
|
|
Takashi Iwai |
3d08ac |
|