qemu/hw/net
Thomas Huth c527e0afcd hw/net/vmxnet3: Fix code to work on big endian hosts, too
Since commit ab06ec4357 we test the vmxnet3 device in the
pxe-tester, too (when running "make check SPEED=slow"). This now
revealed that the code is not working there if the host is a big
endian machine (for example ppc64 or s390x) - "make check SPEED=slow"
is now failing on such hosts.

The vmxnet3 code lacks endianness conversions in a couple of places.
Interestingly, the bitfields in the structs in vmxnet3.h already tried to
take care of the *bit* endianness of the C compilers - but the code missed
to change the *byte* endianness when reading or writing the corresponding
structs. So the bitfields are now wrapped into unions which allow to change
the byte endianness during runtime with the non-bitfield member of the union.
With these changes, "make check SPEED=slow" now properly works on big endian
hosts, too.

Reported-by: David Gibson <dgibson@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: David Gibson <dgibson@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
2017-11-20 11:08:00 +08:00
..
fsl_etsec sysbus: Set user_creatable=false by default on TYPE_SYS_BUS_DEVICE 2017-05-17 10:37:01 -03:00
rocker pci: Add INTERFACE_CONVENTIONAL_PCI_DEVICE to Conventional PCI devices 2017-10-15 05:54:43 +03:00
Makefile.objs net: add Sun HME (Happy Meal Ethernet) on-board NIC 2017-09-21 08:38:42 +01:00
allwinner_emac.c qapi: Change Netdev into a flat union 2016-07-19 20:18:02 +02:00
cadence_gem.c cadence_gem: Make the revision a property 2017-04-20 17:39:17 +01:00
dp8393x.c memory: Rename memory_region_init_ram() to memory_region_init_ram_nomigrate() 2017-07-14 17:59:42 +01:00
e1000.c net: Transmit zero UDP checksum as 0xFFFF 2017-11-20 11:08:00 +08:00
e1000_regs.h e1000: Rename the SEC symbol to SEQEC 2017-09-08 08:17:37 +08:00
e1000e.c pci: Add INTERFACE_PCIE_DEVICE to all PCIe devices 2017-10-15 05:54:42 +03:00
e1000e_core.c e1000: Rename the SEC symbol to SEQEC 2017-09-08 08:17:37 +08:00
e1000e_core.h e1000e: Flush all receive queues on receive enable 2016-09-27 17:54:22 +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: Rename the SEC symbol to SEQEC 2017-09-08 08:17:37 +08:00
eepro100.c hw/net/eepro100: Fix endianness problem on big endian hosts 2017-11-20 11:08:00 +08:00
etraxfs_eth.c qdev: Replace cannot_instantiate_with_device_add_yet with !user_creatable 2017-05-17 10:37:00 -03:00
ftgmac100.c net/ftgmac100: add a 'aspeed' property 2017-04-25 19:17:25 +08:00
imx_fec.c net: imx: limit buffer descriptor count 2017-02-15 11:18:57 +08:00
lan9118.c hw/ptimer: Introduce timer policy feature 2016-09-22 18:13:06 +01:00
lance.c lance: move TYPE_LANCE and SysBusPCNetState from lance.c to lance.h 2017-10-31 17:25:36 +00:00
mcf_fec.c hw/net: implement MIB counters in mcf_fec driver 2017-03-14 15:39:55 +08:00
milkymist-minimac2.c memory: Rename memory_region_init_ram() to memory_region_init_ram_nomigrate() 2017-07-14 17:59:42 +01:00
mipsnet.c qapi: Change Netdev into a flat union 2016-07-19 20:18:02 +02:00
ne2000-isa.c qapi: Change Netdev into a flat union 2016-07-19 20:18:02 +02:00
ne2000.c pci: Add INTERFACE_CONVENTIONAL_PCI_DEVICE to Conventional PCI devices 2017-10-15 05:54:43 +03:00
ne2000.h Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
net_rx_pkt.c net: Transmit zero UDP checksum as 0xFFFF 2017-11-20 11:08:00 +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 net: Transmit zero UDP checksum as 0xFFFF 2017-11-20 11:08:00 +08:00
net_tx_pkt.h clean-includes: run it once more 2016-06-16 18:39:03 +02:00
opencores_eth.c qapi: Change Netdev into a flat union 2016-07-19 20:18:02 +02:00
pcnet-pci.c pci: Add INTERFACE_CONVENTIONAL_PCI_DEVICE to Conventional PCI devices 2017-10-15 05:54:43 +03:00
pcnet.c net: pcnet: fix source formatting and indentation 2016-10-26 09:57:59 +08:00
pcnet.h Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
rtl8139.c pci: Add INTERFACE_CONVENTIONAL_PCI_DEVICE to Conventional PCI devices 2017-10-15 05:54:43 +03:00
smc91c111.c qapi: Change Netdev into a flat union 2016-07-19 20:18:02 +02:00
spapr_llan.c hw/net/spapr_llan: 6 byte mac address device tree entry 2017-02-22 14:28:53 +11:00
stellaris_enet.c arm: stellaris: make MII accesses complete immediately 2017-01-27 15:29:08 +00:00
sungem.c pci: Add INTERFACE_CONVENTIONAL_PCI_DEVICE to Conventional PCI devices 2017-10-15 05:54:43 +03:00
sunhme.c pci: Add INTERFACE_CONVENTIONAL_PCI_DEVICE to Conventional PCI devices 2017-10-15 05:54:43 +03:00
trace-events net: add Sun HME (Happy Meal Ethernet) on-board NIC 2017-09-21 08:38:42 +01:00
vhost_net.c spec/vhost-user spec: Add IOMMU support 2017-06-02 18:57:17 +03:00
virtio-net.c migration: pre_save return int 2017-09-27 11:35:59 +01:00
vmware_utils.h hw/net/vmxnet3: Fix code to work on big endian hosts, too 2017-11-20 11:08:00 +08:00
vmxnet3.c hw/net/vmxnet3: Fix code to work on big endian hosts, too 2017-11-20 11:08:00 +08:00
vmxnet3.h hw/net/vmxnet3: Fix code to work on big endian hosts, too 2017-11-20 11:08:00 +08:00
vmxnet_debug.h Clean up ill-advised or unusual header guards 2016-07-12 16:20:46 +02:00
xen_nic.c xen: Rename xen_be_send_notify 2016-10-28 17:54:21 -07:00
xgmac.c Remove/replace sysemu/char.h inclusion 2017-06-02 11:33:52 +04:00
xilinx_axienet.c xilinx_axienet: Convert to DEFINE_PROP_LINK 2017-09-07 13:54:51 +01:00
xilinx_ethlite.c hw/net: Fix a heap overflow in xlnx.xps-ethernetlite 2016-08-09 15:27:18 +08:00