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

   ## Summary
   
   `fdcan_receive_work()` writes `rx_pool`, `d_buf` and `d_len` without the 
device lock, racing with `devif_poll()`. Hold `netdev_lock()` until `d_buf` is 
restored.
   
   Originally found on PX4's `px4_firmware_nuttx-10.3.0+` branch, see 
https://github.com/PX4/NuttX/pull/436. That PR also fixed an unlocked 
`devif_poll()` in `fdcan_txdone_work()`; master already takes `netdev_lock()` 
inside `devif_poll()`, so only the RX path is needed here.
   
   ## Impact
   
   stm32h7 FDCAN SocketCAN driver only. Fixes CAN sends failing with `EAGAIN` 
under RX load (>20% of sends on the PX4 branch with CAN work on the HP work 
queue).
   
   ## Testing
   
   Only tested on PX4's `px4_firmware_nuttx-10.3.0+` branch
   
   🤖 Generated with [Claude Code](https://claude.com/claude-code)
   


-- 
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]

  • [PR] arch/arm/stm32h7: Take n... Baardrw (via GitHub) via commits

Reply via email to