On 2016年06月18日 18:24, KarimAllah Ahmed wrote:
When a PCI device lives behind an IOMMU, it should use 'pci_dma_*' family of
functions when any transfer from/to guest memory is required while
'cpu_physical_memory_*' family of functions completely bypass any MMU/IOMMU in
the system.

vmxnet3 was exclusively using 'cpu_physical_memory_*' family of functions which
works fine with the default QEMU setup where IOMMU is not enabled but fails
miserably when IOMMU is enabled. This commit converts all such instances in
favor of 'pci_dma_*'

Cc: Dmitry Fleytman<dmi...@daynix.com>
Cc: Jason Wang<jasow...@redhat.com>
Cc:qemu-devel@nongnu.org
Cc: Anthony Liguori<aligu...@amazon.com>
Signed-off-by: KarimAllah Ahmed<karah...@amazon.de>
---
  hw/net/vmware_utils.h  |  55 +++++++------
  hw/net/vmxnet3.c       | 207 +++++++++++++++++++++++++++----------------------
  hw/net/vmxnet_tx_pkt.c |  19 ++---
  hw/net/vmxnet_tx_pkt.h |   8 +-
  4 files changed, 161 insertions(+), 128 deletions(-)

Thanks for the patch, but could you pls rebase this on top of master?


Reply via email to