3ccef09b4e
Summary: - I thought this cs is needed to avoid data corruption - For example, while executing uart_xmitchar() in the interrupt handler on CPU0, an application running on CPU1 can call uart_putxmitchar() via write()->uart_write(). - In this case, taking xmit.sem in uart_write() will wait for CPU0 to finish uart_xmitchar() because CPU0 has already taken a cs in uart_xmitchar() then nxsem_wait() on CPU0 takes a new cs inside (and release the cs when returning but it's OK) - Then uart_write() on CPU1 disables UART TX, so uart_xmitchar() on CPU0 will not be called while executing uart_write() on CPU1. - So this critical section in uart_putxmitchar() can be removed. Impact: - None Testing: - Tested with spresense:wifi_smp, esp32-devkitc:smp Reported-by: Xiang Xiao <xiaoxiang@xiaomi.com> Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com> |
||
---|---|---|
.. | ||
Kconfig | ||
Kconfig-16550 | ||
Kconfig-lpuart | ||
Kconfig-sci | ||
Kconfig-uart | ||
Kconfig-usart | ||
Make.defs | ||
ptmx.c | ||
pty.c | ||
pty.h | ||
serial_dma.c | ||
serial_io.c | ||
serial.c | ||
tcdrain.c | ||
uart_16550.c | ||
uart_bth4.c | ||
uart_rpmsg.c |