Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
drivers: serial: nrfx_uarte: Fix race condition in TX path
If interrupt handler contains while loop which depends on uart_irq_tx_ready() and uart_fifo_fill is called inside this loop then if TXSTOPPED event occurs while code executes the loop then uart_irq_tx_ready() will return true but uart_fifo_fill will fail to write any bytes. That is because fifo_fill_lock is cleared in handling of TXSTOPPED. To solve that added clearing the lock inside uart_irq_tx_ready() if STOPPED event is detected there. Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>
- Loading branch information