AR9882 IOMMU faults

Ben Greear greearb at
Fri Jul 8 06:57:47 PDT 2016

On 07/08/2016 06:09 AM, Manoharan, Rajkumar wrote:
> Logs are so limited. If possible, revert below commit and give a try
> "ath10k: do not use coherent memory for allocated device memory chunks"
> If revert is not so clean, try with this patch.

I use this patch, I don't think it is upstream, and per comment, I have not
tested this on other than x86 platform:

[greearb at ben-dt ath10k]$ git show 0e6e6f6b2
commit 0e6e6f6b2fac0ade990de56eef3841dbe7128f35
Author: Ben Greear <greearb at>
Date:   Thu Jan 21 18:57:11 2016 -0800

     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

     Should be tested and verified by someone who uses other platforms

     Signed-off-by: Ben Greear <greearb at>

diff --git a/drivers/net/wireless/ath/ath10k/wmi.c b/drivers/net/wireless/ath/ath10k/wmi.c
index af37a77..502f0e0 100644
--- a/drivers/net/wireless/ath/ath10k/wmi.c
+++ b/drivers/net/wireless/ath/ath10k/wmi.c
@@ -4404,7 +4404,7 @@ static int ath10k_wmi_alloc_chunk(struct ath10k *ar, u32 req_id,
         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)) {
                 return -ENOMEM;
[greearb at ben-dt ath10k]$

> -Rajkumar
> ________________________________________
> From: ath10k <ath10k-bounces at> on behalf of Ben Skeggs <bskeggs at>
> Sent: Friday, July 8, 2016 10:59 AM
> To: ath10k at
> Subject: AR9882 IOMMU faults
> Hey,
> I've just installed a COMPEX WLE600VX (AR9882) in my router machine,
> operating in AP mode.
> While it appears to be working well enough, I get massive floods of
> IOMMU faults reported in my kernel log.  These appear to increase with
> the load on the network.
> I've attached both the info that ath10k reports when it detects the
> device, and a sample of one of the DMAR messages (worth nothing that
> it's the same fault address in all the messages).
> Is this a known issue, and anything I can do to help get it resolved?
> Thanks,
> Ben.
> _______________________________________________
> ath10k mailing list
> ath10k at

Ben Greear <greearb at>
Candela Technologies Inc

More information about the ath10k mailing list