Zhenghao Gu <imguzh@xxxxxxxxx> writes: > virt_to_phys doesn't work on systems with IOMMU enabled, > which have non-identity physical-to-IOVA mappings. Can you give an example of such system? Just curious where you are seeing this. > It leads to IO_PAGE_FAULTs like this: > [IO_PAGE_FAULT domain=0x0023 address=0x1cce00000 flags=0x0020] > and no link can be established. What do you mean with link in this context? Are you talking about 802.11 association? > This patch changes that to dma_map_single(), which works correctly. Good catch. And virt_to_phys() documentation even says this: * 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@xxxxxxxxx> Jeff, are you ok with this? I did some cosmetics changes in the pending branch (removed unnecessary parenthesis, reverse xmas tree etc), please check: https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git/commit/?h=pending&id=fefa43d63e1928fce6e8c2bb626900e9ce98ca69 -- https://patchwork.kernel.org/project/linux-wireless/list/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches