qemu-e2k/hw/net
Jean-Christophe Dubois 1b58d58f76 i.MX: Fix FEC/ENET receive funtions
The actual imx_eth_enable_rx() function is buggy.

It updates s->regs[ENET_RDAR] after calling qemu_flush_queued_packets().

qemu_flush_queued_packets() is going to call imx_XXX_receive() which itself
is going to call imx_eth_enable_rx().

By updating s->regs[ENET_RDAR] after calling qemu_flush_queued_packets()
we end up updating the register with an outdated value which might
lead to disabling the receive function in the i.MX FEC/ENET device.

This patch change the place where the register update is done so that the
register value stays up to date and the receive function can keep
running.

Reported-by: Fyleo <fyleo45@gmail.com>
Tested-by: Fyleo  <fyleo45@gmail.com>
Signed-off-by: Jean-Christophe Dubois <jcd@tribudubois.net>
Message-id: 20180113113445.2705-1-jcd@tribudubois.net
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Andrey Smirnov <andrew.smirnov@gmail.com>
Tested-by: Andrey Smirnov <andrew.smirnov@gmail.com>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2018-01-25 11:45:28 +00: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 maint: Fix macros with broken 'do/while(0); ' usage 2018-01-16 14:54:52 +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 e1000: Separate TSO and non-TSO contexts, fixing UDP TX corruption 2017-12-22 09:53:50 +08:00
e1000_regs.h e1000: Rename the SEC symbol to SEQEC 2017-09-08 08:17:37 +08:00
e1000e.c e1000, e1000e: Move per-packet TX offload flags out of context state 2017-12-22 09:53:23 +08:00
e1000e_core.c e1000, e1000e: Move per-packet TX offload flags out of context state 2017-12-22 09:53:23 +08:00
e1000e_core.h e1000, e1000e: Move per-packet TX offload flags out of context state 2017-12-22 09:53:23 +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, e1000e: Move per-packet TX offload flags out of context state 2017-12-22 09:53:23 +08:00
eepro100.c eepro100: use inline net_crc32() and bitshift instead of compute_mcast_idx() 2017-12-22 10:01:27 +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 ftgmac100: use inline net_crc32() and bitshift instead of compute_mcast_idx() 2017-12-22 10:01:27 +08:00
imx_fec.c i.MX: Fix FEC/ENET receive funtions 2018-01-25 11:45:28 +00:00
lan9118.c lan9118: use inline net_crc32() and bitshift instead of compute_mcast_idx() 2017-12-22 10:01:27 +08:00
lance.c sun4m: remove include/hw/sparc/sun4m.h and all references to it 2018-01-09 21:48:20 +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 hw/net/ne2000: extract ne2k-isa code from i386/pc to ne2000-isa.c 2017-12-18 17:07:02 +03:00
ne2000.c ne2000: use inline net_crc32() and bitshift instead of compute_mcast_idx() 2017-12-22 10:01:27 +08:00
ne2000.h hw/net/ne2000: extract ne2k-isa code from i386/pc to ne2000-isa.c 2017-12-18 17:07:02 +03: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 opencores_eth: use inline net_crc32() and bitshift instead of compute_mcast_idx() 2017-12-22 10:01:27 +08: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: Drop unusual use of do { } while (0); 2018-01-16 14:54:51 +01:00
pcnet.h Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
rtl8139.c rtl8139: use inline net_crc32() and bitshift instead of compute_mcast_idx() 2017-12-22 10:01:27 +08: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 sungem: fix multicast filter CRC calculation 2017-12-22 10:00:47 +08:00
sunhme.c sunhme: switch sunhme over to use net_crc32_le() 2017-12-22 10:00:47 +08: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 virtio-net: don't touch virtqueue if vm is stopped 2017-11-28 11:54:50 +08: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 pci: Eliminate redundant PCIDevice::bus pointer 2017-12-05 19:13:45 +02: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