qemu-patch-raspberry4/hw/net
Finn Thain c2279bd0a1 dp8393x: Don't stop reception upon RBE interrupt assertion
Section 3.4.7 of the datasheet explains that,

    The RBE bit in the Interrupt Status register is set when the
    SONIC finishes using the second to last receive buffer and reads
    the last RRA descriptor. Actually, the SONIC is not truly out of
    resources, but gives the system an early warning of an impending
    out of resources condition.

RBE does not mean actual receive buffer exhaustion, and reception should
not be stopped. This is important because Linux will not check and clear
the RBE interrupt until it receives another packet. But that won't
happen if can_receive returns false. This bug causes the SONIC to become
deaf (until reset).

Fix this with a new flag to indicate actual receive buffer exhaustion.

Signed-off-by: Finn Thain <fthain@telegraphics.com.au>
Tested-by: Laurent Vivier <laurent@vivier.eu>
Signed-off-by: Jason Wang <jasowang@redhat.com>
2020-03-03 18:04:47 +08:00
..
can qemu_log_lock/unlock now preserves the qemu_logfile handle. 2019-12-18 20:18:02 +00:00
fsl_etsec qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
rocker hw/net/rocker: Report unimplemented feature with qemu_log_mask(UNIMP) 2020-02-18 20:20:49 +01:00
allwinner_emac.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
cadence_gem.c Remove unnecessary cast when using the address_space API 2020-02-20 14:47:08 +01:00
dp8393x.c dp8393x: Don't stop reception upon RBE interrupt assertion 2020-03-03 18:04:47 +08:00
e1000.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
e1000_regs.h e1000: Rename the SEC symbol to SEQEC 2017-09-08 08:17:37 +08:00
e1000e.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
e1000e_core.c sysemu: Split sysemu/runstate.h off sysemu/sysemu.h 2019-08-16 13:37:36 +02:00
e1000e_core.h Supply missing header guards 2019-06-12 13:20:21 +02:00
e1000x_common.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
e1000x_common.h Supply missing header guards 2019-06-12 13:20:21 +02:00
eepro100.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
etraxfs_eth.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
ftgmac100.c ftgmac100: check RX and TX buffer alignment 2020-01-30 16:02:02 +00:00
i82596.c Avoid address_space_rw() with a constant is_write argument 2020-02-20 14:47:08 +01:00
i82596.h hppa: Add support for LASI chip with i82596 NIC 2020-01-27 10:49:51 -08:00
imx_fec.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
Kconfig hppa: Add support for LASI chip with i82596 NIC 2020-01-27 10:49:51 -08:00
lan9118.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
lance.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
lasi_i82596.c Avoid address_space_rw() with a constant is_write argument 2020-02-20 14:47:08 +01:00
Makefile.objs hw/*/Makefile.objs: Move many .o files to common-objs 2020-02-04 09:00:57 +01:00
mcf_fec.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
milkymist-minimac2.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
mipsnet.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
ne2000-isa.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
ne2000-pci.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
ne2000.c Clean up inclusion of sysemu/sysemu.h 2019-08-16 13:31:53 +02:00
ne2000.h Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +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: fix misaligned member access 2018-03-02 18:44:00 +00:00
net_tx_pkt.h clean-includes: run it once more 2016-06-16 18:39:03 +02:00
opencores_eth.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
pcnet-pci.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
pcnet.c Clean up inclusion of sysemu/sysemu.h 2019-08-16 13:31:53 +02:00
pcnet.h lance: replace PROP_PTR with PROP_LINK 2020-01-07 17:24:29 +04:00
rtl8139.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
smc91c111.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
spapr_llan.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
stellaris_enet.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
sungem.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
sunhme.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
trace-events hppa: Add support for LASI chip with i82596 NIC 2020-01-27 10:49:51 -08:00
tulip.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
tulip.h net: add tulip (dec21143) driver 2019-10-29 10:28:07 +08:00
vhost_net-stub.c vhost-net: move stubs to a separate file 2019-02-21 12:28:01 -05:00
vhost_net.c vhost_net: enable packed ring support 2019-10-25 07:46:22 -04:00
virtio-net.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +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 qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
vmxnet3.h hw/net/vmxnet3: Fix code to work on big endian hosts, too 2017-11-20 11:08:00 +08:00
vmxnet3_defs.h Supply missing header guards 2019-06-12 13:20:21 +02:00
vmxnet_debug.h Clean up ill-advised or unusual header guards 2016-07-12 16:20:46 +02:00
xen_nic.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
xgmac.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
xilinx_axienet.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
xilinx_ethlite.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00