gustavonihei opened a new pull request #3810:
URL: https://github.com/apache/incubator-nuttx/pull/3810


   ## Summary
   This PR intends to the provide a fix to the unintended overwrite of a 
previously registered IRQ when it is in disabled state at the time of a new 
request.
   This scenario was found during the development of the SPI Slave driver for 
the ESP32-C3. For testing purposes, it was added interrupt support to the DMA 
driver.
   The SPI Slave driver behaves a bit different regarding the interrupt enable 
process. It first requests the IRQ, but does not enable the interrupts right 
away. Instead, it performs the remaining initialization, triggers the interrupt 
flag for TRANS_DONE and then finally enabled the interrupts with 
`up_enable_irq`.
   The found issue is that the DMA interrupt enabling was part of the remaining 
initialization, which overwrote the SPI Slave interrupt from the `g_cpuint_map`.
   
   ## Impact
   Just for ESP32-C3 boards. No impact to current upstream drivers.
   
   ## Testing
   DEBUGASSERT was previously being triggered when any interrupt was disabled 
during the request of a new one. This is now fixed.
   


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

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


Reply via email to