From: Ian Jackson <ian.jack...@eu.citrix.com> Date: Fri, 17 Apr 2015 17:29:28 +0100
> Prashant Sreedharan writes ("Re: tg3 NIC driver bug in 3.14.x under Xen [and > 3 more messages]"): >> Ok this is what is causing the problem, the driver uses >> DEFINE_DMA_UNMAP_ADDR(), dma_unmap_addr_set() to keep a copy of the dma >> "mapping" and dma_unmap_addr() to get the "mapping" value. On most of >> the platforms this is a no-op, but it appears with "iommu=soft and >> swiotlb=force" this house keeping is required, when I pass the correct >> dma_addr instead of 0 while calling pci_unmap_/pci_dma_sync_ I don't see >> the corruption. ie If you set CONFIG_NEED_DMA_MAP_STATE=y in your kernel >> config you should not see the problem. Can you confirm ? Thanks > > That kernel config option is an automatically computed one: > > config NEED_DMA_MAP_STATE > def_bool y > depends on X86_64 || INTEL_IOMMU || DMA_API_DEBUG > > and grepping my .config shows: > > # CONFIG_INTEL_IOMMU is not set > # CONFIG_DMA_API_DEBUG is not set > > It's a 32-bit kernel so it hasn't got X86_64 enabled either. > > Arguably at least some of osstest's kernels should have INTEL_IOMMU > enabled to detect conflicts between Xen's use of the iommu and > possible attempts bo Linux to do the same thing, but not having it > enabled should not cause a driver bug. So the gist of the situation is, that NEED_DMA_MAP_STATE can be 'n' in situations where we might actually need it to be 'y' based upon kernel comman line boot options given. Right? -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html