FelipeMdeO opened a new pull request, #20156:
URL: https://github.com/apache/nuttx/pull/20156

   ## Summary
   
   `esp_openeth_initialize()` 
(`arch/xtensa/src/common/espressif/esp_openeth.c`) attaches the MAC interrupt 
with `esp_setup_irq()` but never calls `up_enable_irq(OPENETH_IRQ_MAC)`, unlike 
every other Espressif driver in this tree. Left masked, `openeth_isr_handler()` 
never runs and received frames are only picked up when the netdev work thread 
happens to run for some other reason (a transmit) — a guest can send but not 
really receive.
   
   Also fixes `openeth_ifdown()`, which calls `openeth_enable()` right under a 
comment that says "Disable TX and RX"; it should call `openeth_disable()`.
   
   Board-independent code, and `open_eth` only exists as a QEMU peripheral, so 
there is no real-hardware regression risk.
   
   ## Impact
   
   Fixes network RX on the `esp32s3` QEMU machine (`open_eth` NIC). No impact 
on real hardware, since this code path is QEMU-only.
   
   ## Testing
   
   Confirmed with a GDB breakpoint counter on `openeth_isr_handler()` under 
QEMU's `esp32s3` machine: zero hits before the fix, dozens after. With the 
interrupt enabled, TCP retransmits over a fixed test window dropped from 86 to 
4. `tools/checkpatch.sh` passes clean.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to