1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00
RIOT/cpu/esp32
Erik Ekman 95196fb7e4 esp32/eth: Don't overwrite queued event with RX packet
If there is an event to be handled by _esp_eth_isr(), don't
overwrite it if a new packet has been received.

In my testing, all SYSTEM_EVENT_ETH_CONNECTED events except the first
are immediately followed by at least one SYSTEM_EVENT_ETH_RX_DONE event.
This causes the SYSTEM_EVENT_ETH_CONNECTED to not get handled, and the
IP stack will not be notified of the new link state.

Protect the other events by dropping the packet instead. If an earlier
unhandled SYSTEM_EVENT_ETH_RX_DONE event exists, overwrite it with the
newer packet.

I only saw this happen with lwIP and not with GNRC - I am not sure why.
But it still is a race waiting to happen. The nice long term solution
is probably to have a queue of unhandled events, allowing them all to
be processed once there is time.
2021-02-24 01:20:43 +01:00
..
bin cpu/esp32: activate automatic XTAL detection 2020-01-09 15:34:18 +01:00
esp-eth esp32/eth: Don't overwrite queued event with RX packet 2021-02-24 01:20:43 +01:00
freertos cpu/esp*: move freertos/task to cpu/esp_common 2020-02-21 09:09:34 +01:00
include cpu/esp32: fix typo in timer documentation 2021-01-08 12:04:24 +01:00
ld xfa: remove obsolete empty xfa.ld 2021-02-18 10:46:08 +01:00
periph cpu/*: replace #if ENABLE_DEBUG with IS_ACTIVE 2020-11-02 21:34:12 +01:00
vendor cpu/esp32: Add newline to emac_main debug prints 2021-01-21 20:55:02 +01:00
doc.txt cpu/esp32: add support for IP101G Ethernet phy 2020-11-28 10:15:14 +01:00
esp_xtimer.c cpu/esp32: reflecting xtimer's member change 2020-01-10 13:21:33 -08:00
irq_arch.c cpu/*: reorder ENABLE_DEBUG after last include 2020-10-23 00:45:55 +02:00
Kconfig boards/esp32-ethernet-kit: Setup Kconfig to match makefiles 2020-11-28 10:18:54 +01:00
Makefile cpu/esp32: cleanup of C++ hacks 2020-07-29 10:14:57 +02:00
Makefile.default cpu: make pm_layered a DEFAULT_MODULE 2021-01-27 13:21:20 +01:00
Makefile.dep cpu: make pm_layered a DEFAULT_MODULE 2021-01-27 13:21:20 +01:00
Makefile.features cpu/esp32: Add Kconfig symbols 2020-07-07 16:27:35 +02:00
Makefile.include make/esptool: fix FFLAGS inclusion order for qemu 2021-02-22 10:35:38 +01:00
startup.c cpu/*: replace #if ENABLE_DEBUG with IS_ACTIVE 2020-11-02 21:34:12 +01:00
syscalls.c cpu/*: realign ENABLE_DEBUG 2020-10-23 00:46:26 +02:00