igb_uio: map dummy DMA forcing IOMMU domain attachment
authorAlejandro Lucero <alejandro.lucero@netronome.com>
Wed, 18 Jan 2017 12:27:55 +0000 (12:27 +0000)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Thu, 30 Mar 2017 20:26:07 +0000 (22:26 +0200)
commitd287e4d41be0647aad5f341179f844cf304e0ea5
treed6f5b716f56f17bb16f129040d6bb2130f2dde91
parent94c0776b1badd1ee715d60f07391058f23494365
igb_uio: map dummy DMA forcing IOMMU domain attachment

For using a DPDK app when iommu is enabled, it requires to
add iommu=pt to the kernel command line. But using igb_uio driver
makes DMAR errors because the device has not an IOMMU domain.

Since kernel 3.15, iommu=pt requires to use the internal kernel
DMA API for attaching the device to the IOMMU 1:1 mapping, aka
si_domain. Previous versions did attach the device to that
domain when intel iommu notifier was called.

This is not a problem if the driver does later some call to the
DMA API because the mapping can be done then. But DPDK apps do
not use that DMA API at all.

Doing this dma map and unmap is harmless even when iommu is not
enabled at all.

Signed-off-by: Alejandro Lucero <alejandro.lucero@netronome.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
lib/librte_eal/linuxapp/igb_uio/igb_uio.c