openwrtv4/package/kernel/mac80211/patches/330-ath10k-wmi-alloc-chunk-should-use-DMA_BIDIRECTIONAL.patch
Felix Fietkau 66482e179b ath10k: fix DMA allocation issues
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2016-12-13 12:44:57 +01:00

27 lines
970 B
Diff

From: Ben Greear <greearb@candelatech.com>
Date: Tue, 29 Nov 2016 14:00:28 -0800
Subject: [PATCH] ath10k: wmi-alloc-chunk should use DMA_BIDIRECTIONAL.
These memory chunks are often used as 'swap' by the NIC,
so it will be both reading and writing to these areas.
This seems to fix errors like this on my x86-64 machine:
kernel: DMAR: DMAR:[DMA Write] Request device [05:00.0] fault addr ff5de000
DMAR:[fault reason 05] PTE Write access is not set
Tested-by: Marek Behun <kabel@blackhole.sk>
Signed-off-by: Ben Greear <greearb@candelatech.com>
---
--- a/drivers/net/wireless/ath/ath10k/wmi.c
+++ b/drivers/net/wireless/ath/ath10k/wmi.c
@@ -4495,7 +4495,7 @@ static int ath10k_wmi_alloc_chunk(struct
if (!num_units)
return -ENOMEM;
- paddr = dma_map_single(ar->dev, vaddr, pool_size, DMA_TO_DEVICE);
+ paddr = dma_map_single(ar->dev, vaddr, pool_size, DMA_BIDIRECTIONAL);
if (dma_mapping_error(ar->dev, paddr)) {
kfree(vaddr);
return -ENOMEM;