nuttx/drivers/serial
yinshengkai 2bfff207fd drivers/serial: Fix SIGINT not delivered to foreground process on Ctrl-C.
When pressing Ctrl-C, the foreground process did not receive SIGINT
and failed to terminate.

The serial driver called nxsig_tgkill(-1, dev->pid, signo) from
interrupt context. With pid=-1, nxsig_dispatch() was called with
thread=true, which requires stcb->group == this_task()->group.
However, in interrupt context, this_task() returns the IDLE task,
whose group differs from the target process group. This caused
the signal dispatch to fail with -ESRCH.

Solution:
Replace nxsig_tgkill(-1, pid, signo) with nxsig_kill(pid, signo).
nxsig_kill() uses thread=false, which routes through group_signal()
without the same-group check, allowing signals to be delivered
correctly from interrupt context.

Impact:
- Fixes Ctrl-C signal delivery in serial console
- No API changes
- Affects serial driver interrupt handling only

Testing: Verified on QEMU ARM64 simulator with serial console

Signed-off-by: yinshengkai <yinshengkai@bytedance.com>
2026-01-24 16:54:36 +08:00
..
CMakeLists.txt cmake(bugfix):add missing driver/serial CMake build source 2024-11-13 02:36:18 +08:00
Kconfig drivers/serial: Fix Kconfig style 2025-06-26 02:30:46 +08:00
Kconfig-16550 drivers/serial/Kconfig-16550: fix non-existent option 2026-01-19 16:12:25 +01:00
Kconfig-cmsdk drivers/serial:support arm cmsdk drivers 2024-04-26 18:42:35 -03:00
Kconfig-lpuart
Kconfig-pci drivers/serial: simplify 16550_PCI_UARTx_CLOCK config 2025-01-03 08:52:43 +08:00
Kconfig-pl011 drivers/serial/uart_pl011.c : add the interface about clock and reset control for reducing power consumption. 2024-06-03 21:18:44 +08:00
Kconfig-sci
Kconfig-uart
Kconfig-usart drivers/serial/serial: prevent race conditions on 8-bit architectures 2025-06-19 10:01:24 -03:00
Make.defs drivers: migrate to SPDX identifier 2024-11-06 18:02:25 +08:00
ptmx.c drivers/serial: fix the issue of the refs count for filep being zeroed out by utilizing dup2 2025-06-26 09:31:14 -03:00
pty.c drivers/serial/pty: fix memory leak when pty_destroy 2026-01-06 15:08:23 -03:00
pty.h drivers: migrate to SPDX identifier 2024-11-06 18:02:25 +08:00
serial.c sched/sleep: replace all Signal-based sleep implement to Scheduled sleep 2025-10-17 14:05:02 +08:00
serial_cmsdk.c style: fix spelling in code comments and strings 2025-05-23 10:48:41 +08:00
serial_dma.c drivers/serial: Fix SIGINT not delivered to foreground process on Ctrl-C. 2026-01-24 16:54:36 +08:00
serial_gdbstub.c style: fix spelling in code comments and strings 2025-05-23 10:48:41 +08:00
serial_io.c drivers/serial: Fix SIGINT not delivered to foreground process on Ctrl-C. 2026-01-24 16:54:36 +08:00
uart_16550.c style: fix spelling in code comments and strings 2025-05-23 10:48:41 +08:00
uart_bth4.c drivers: migrate to SPDX identifier 2024-11-06 18:02:25 +08:00
uart_bth5.c drivers: migrate to SPDX identifier 2024-11-06 18:02:25 +08:00
uart_hostfs.c drivers: migrate to SPDX identifier 2024-11-06 18:02:25 +08:00
uart_pci_16550.c style: fix spelling in code comments and strings 2025-05-23 10:48:41 +08:00
uart_pl011.c uart_pl011: "pl011_irq_tx_ready" and "pl011_txready" is reversed. 2025-11-10 14:15:19 +08:00
uart_ram.c serial/uart_ram: update lower buffer offset if previous send completes 2025-01-23 18:14:48 +08:00
uart_rpmsg.c drivers/serial/uart_rpmsg: simplify initialization process of uart_rpmsg 2025-04-02 20:56:01 +08:00