[PATCH v2] wifi: ath11k: fix IOMMU errors on buffer rings

Kalle Valo kvalo at kernel.org
Thu Jan 11 03:18:57 PST 2024


Zhenghao Gu <imguzh at gmail.com> wrote:

> virt_to_phys() doesn't work on systems with IOMMU enabled, which have
> non-identity physical-to-IOVA mappings.  It leads to IO_PAGE_FAULTs like this:
> 
> [IO_PAGE_FAULT domain=0x0023 address=0x1cce00000 flags=0x0020]
> 
> And no association to the AP can be established.
> 
> This patch changes that to dma_map_single(), which works correctly. Even
> virt_to_phys() documentation says device drivers should not use it:
> 
>     This function does not give bus mappings for DMA transfers. In
>     almost all conceivable cases a device driver should not be using
>     this function
> 
> Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1
> 
> Signed-off-by: Zhenghao Gu <imguzh at gmail.com>
> Acked-by: Jeff Johnson <quic_jjohnson at quicinc.com>
> Signed-off-by: Kalle Valo <quic_kvalo at quicinc.com>

Patch applied to ath-next branch of ath.git, thanks.

aaf244141ed7 wifi: ath11k: fix IOMMU errors on buffer rings

-- 
https://patchwork.kernel.org/project/linux-wireless/patch/20231212031914.47339-1-imguzh@gmail.com/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches




More information about the ath11k mailing list