qemu-e2k/hw/net
KarimAllah Ahmed c508277335 vmxnet3: Fix reading/writing guest memory specially when behind an IOMMU
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 in some places was 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 <dmitry@daynix.com>
Cc: Jason Wang <jasowang@redhat.com>
Cc: qemu-devel@nongnu.org
Cc: Anthony Liguori <aliguori@amazon.com>
Signed-off-by: KarimAllah Ahmed <karahmed@amazon.de>
Acked-by: Dmitry Fleytman <dmitry@daynix.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
2016-06-28 10:13:57 +08:00
..
fsl_etsec hw: explicitly include qemu/log.h 2016-05-19 16:42:29 +02:00
rocker hw/net/rocker: Don't use *_to_cpup() 2016-06-27 16:39:56 +01:00
Makefile.objs net: Introduce e1000e device emulation 2016-06-02 10:42:29 +08:00
allwinner_emac.c hw: explicitly include qemu/log.h 2016-05-19 16:42:29 +02:00
cadence_gem.c cadence_gem: Set the last bit when wrap is set 2016-06-27 15:37:32 +01:00
dp8393x.c Replaced get_tick_per_sec() by NANOSECONDS_PER_SECOND 2016-03-22 22:20:17 +01:00
e1000.c hw/net/e1000: Don't use *_to_cpup() 2016-06-27 16:39:56 +01:00
e1000_regs.h net: Introduce e1000e device emulation 2016-06-02 10:42:29 +08:00
e1000e.c e1000e: Fix build with gcc 4.6.3 and ust tracing 2016-06-06 09:42:54 +01:00
e1000e_core.c hw/net/e1000: Don't use *_to_cpup() 2016-06-27 16:39:56 +01:00
e1000e_core.h net: Introduce e1000e device emulation 2016-06-02 10:42:29 +08:00
e1000x_common.c hw/net/e1000: Don't use *_to_cpup() 2016-06-27 16:39:56 +01:00
e1000x_common.h e1000: Move out code that will be reused in e1000e 2016-06-02 10:42:29 +08:00
eepro100.c hw/net/eepro100.c: Don't use cpu_to_*w() and *_to_cpup() 2016-06-27 16:39:56 +01:00
etraxfs_eth.c hw/net: Clean up includes 2016-01-29 15:07:23 +00:00
imx_fec.c Add ENET/Gbps Ethernet support to FEC device 2016-06-02 10:42:46 +08:00
lan9118.c hw: explicitly include qemu/log.h 2016-05-19 16:42:29 +02:00
lance.c hw/net: Clean up includes 2016-01-29 15:07:23 +00:00
mcf_fec.c hw/net: Clean up includes 2016-01-29 15:07:23 +00:00
milkymist-minimac2.c hw: explicitly include qemu-common.h and cpu.h 2016-03-22 22:20:17 +01:00
mipsnet.c net: mipsnet: check transmit buffer size before sending 2016-06-28 10:13:57 +08:00
ne2000-isa.c error: Remove NULL checks on error_propagate() calls 2016-06-20 16:38:13 +02:00
ne2000.c net: ne2000: check ring buffer control registers 2016-03-08 15:34:09 +08:00
ne2000.h ne2000: Drop ne2000_can_receive 2015-09-02 14:51:07 +01:00
net_rx_pkt.c net_pkt: Extend packet abstraction as required by e1000e functionality 2016-06-02 10:42:28 +08:00
net_rx_pkt.h net_pkt: Extend packet abstraction as required by e1000e functionality 2016-06-02 10:42:28 +08:00
net_tx_pkt.c clean-includes: run it once more 2016-06-16 18:39:03 +02:00
net_tx_pkt.h clean-includes: run it once more 2016-06-16 18:39:03 +02:00
opencores_eth.c hw/net/opencores_eth: Allocating Large sized arrays to heap 2016-05-23 22:10:16 +03:00
pcnet-pci.c hw/net: Clean up includes 2016-01-29 15:07:23 +00:00
pcnet.c hw/net: Clean up includes 2016-01-29 15:07:23 +00:00
pcnet.h pcnet: Drop pcnet_can_receive 2015-07-27 14:12:18 +01:00
rtl8139.c rtl8139: save/load RxMulOk counter (again) 2016-06-28 10:13:57 +08:00
smc91c111.c hw/net: Clean up includes 2016-01-29 15:07:23 +00:00
spapr_llan.c hw/net/spapr_llan: Provide counter with dropped rx frames to the guest 2016-05-27 09:40:23 +10:00
stellaris_enet.c net: stellaris_enet: check packet length against receive buffer 2016-04-11 14:22:33 +01:00
trace-events trace: split out trace events for hw/net/ directory 2016-06-20 17:22:15 +01:00
vhost_net.c vhost-net: save & restore vring enable state 2016-06-17 03:28:03 +03:00
virtio-net.c hw/net/virtio-net.c: Don't use *_to_cpup() 2016-06-27 16:39:56 +01:00
vmware_utils.h vmxnet3: Fix reading/writing guest memory specially when behind an IOMMU 2016-06-28 10:13:57 +08:00
vmxnet3.c vmxnet3: Fix reading/writing guest memory specially when behind an IOMMU 2016-06-28 10:13:57 +08:00
vmxnet3.h vmxnet3: Add support for VMXNET3_CMD_GET_ADAPTIVE_RING_INFO command 2015-10-12 13:19:29 +08:00
vmxnet_debug.h vmxnet3: Use common MAC address tracing macros 2016-06-02 10:42:27 +08:00
xen_nic.c os-posix: include sys/mman.h 2016-06-16 18:39:03 +02:00
xgmac.c arm: Clean up includes 2016-01-29 15:07:23 +00:00
xilinx_axienet.c include/qemu/osdep.h: Don't include qapi/error.h 2016-03-22 22:20:15 +01:00
xilinx_ethlite.c hw: explicitly include qemu-common.h and cpu.h 2016-03-22 22:20:17 +01:00