kernel_samsung_a53x/drivers/tty
Daniel Thompson f8a1ce28e1 serial: kgdboc: Fix NMI-safety problems from keyboard reset code
commit b2aba15ad6f908d1a620fd97f6af5620c3639742 upstream.

Currently, when kdb is compiled with keyboard support, then we will use
schedule_work() to provoke reset of the keyboard status.  Unfortunately
schedule_work() gets called from the kgdboc post-debug-exception
handler.  That risks deadlock since schedule_work() is not NMI-safe and,
even on platforms where the NMI is not directly used for debugging, the
debug trap can have NMI-like behaviour depending on where breakpoints
are placed.

Fix this by using the irq work system, which is NMI-safe, to defer the
call to schedule_work() to a point when it is safe to call.

Reported-by: Liuye <liu.yeC@h3c.com>
Closes: https://lore.kernel.org/all/20240228025602.3087748-1-liu.yeC@h3c.com/
Cc: stable@vger.kernel.org
Reviewed-by: Douglas Anderson <dianders@chromium.org>
Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Link: https://lore.kernel.org/r/20240424-kgdboc_fix_schedule_work-v2-1-50f5a490aec5@linaro.org
Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-11-19 12:26:50 +01:00
..
hvc hvc/xen: prevent concurrent accesses to the shared ring 2024-11-18 22:25:34 +01:00
ipwireless
serdev
serial serial: kgdboc: Fix NMI-safety problems from keyboard reset code 2024-11-19 12:26:50 +01:00
vt vt: fix unicode buffer corruption when deleting characters 2024-11-19 09:22:39 +01:00
amiserial.c
cyclades.c
ehv_bytechan.c
goldfish.c
isicom.c
Kconfig
Makefile
mips_ejtag_fdc.c
moxa.c
moxa.h
mxser.c
mxser.h
n_gsm.c tty: n_gsm: require CAP_NET_ADMIN to attach N_GSM0710 ldisc 2024-11-19 09:23:15 +01:00
n_hdlc.c
n_null.c
n_r3964.c
n_tracerouter.c
n_tracesink.c
n_tracesink.h
n_tty.c
nozomi.c
pty.c
rocket.c
rocket.h
rocket_int.h
synclink.c
synclink_gt.c
synclinkmp.c
sysrq.c tty/sysrq: replace smp_processor_id() with get_cpu() 2024-11-18 11:43:21 +01:00
tty.h tty: change tty_write_lock()'s ndelay parameter to bool 2024-11-18 12:12:49 +01:00
tty_audit.c
tty_baudrate.c
tty_buffer.c
tty_io.c usb: cdc-acm: return correct error code on unsupported break 2024-11-18 12:12:50 +01:00
tty_ioctl.c tty: allow TIOCSLCKTRMIOS with CAP_CHECKPOINT_RESTORE 2024-11-18 12:13:20 +01:00
tty_jobctrl.c tty: tty_jobctrl: fix pid memleak in disassociate_ctty() 2024-11-18 11:43:05 +01:00
tty_ldisc.c
tty_ldsem.c
tty_mutex.c
tty_port.c
ttynull.c
vcc.c tty: vcc: Add check for kstrdup() in vcc_probe() 2024-11-18 11:43:14 +01:00