kernel_samsung_a53x/drivers/tty
Pavel Krasavin 333aaae423 tty: serial: meson: fix hard LOCKUP on crtscts mode
[ Upstream commit 2a1d728f20edeee7f26dc307ed9df4e0d23947ab ]

There might be hard lockup if we set crtscts mode on port without RTS/CTS configured:

# stty -F /dev/ttyAML6 crtscts; echo 1 > /dev/ttyAML6; echo 2 > /dev/ttyAML6
[   95.890386] rcu: INFO: rcu_preempt detected stalls on CPUs/tasks:
[   95.890857] rcu:     3-...0: (201 ticks this GP) idle=e33c/1/0x4000000000000000 softirq=5844/5846 fqs=4984
[   95.900212] rcu:     (detected by 2, t=21016 jiffies, g=7753, q=296 ncpus=4)
[   95.906972] Task dump for CPU 3:
[   95.910178] task:bash            state:R  running task     stack:0     pid:205   ppid:1      flags:0x00000202
[   95.920059] Call trace:
[   95.922485]  __switch_to+0xe4/0x168
[   95.925951]  0xffffff8003477508
[   95.974379] watchdog: Watchdog detected hard LOCKUP on cpu 3
[   95.974424] Modules linked in: 88x2cs(O) rtc_meson_vrtc

Possible solution would be to not allow to setup crtscts on such port.

Tested on S905X3 based board.

Fixes: ff7693d079e5 ("ARM: meson: serial: add MesonX SoC on-chip uart driver")
Cc: stable@vger.kernel.org
Signed-off-by: Pavel Krasavin <pkrasavin@imaqliq.com>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Dmitry Rokosov <ddrokosov@salutedevices.com>

v6: stable tag added
v5: https://lore.kernel.org/lkml/OF43DA36FF.2BD3BB21-ON00258A47.005A8125-00258A47.005A9513@gdc.ru/
added missed Reviewed-by tags, Fixes tag added according to Dmitry and Neil notes
v4: https://lore.kernel.org/lkml/OF55521400.7512350F-ON00258A47.003F7254-00258A47.0040E15C@gdc.ru/
More correct patch subject according to Jiri's note
v3: https://lore.kernel.org/lkml/OF6CF5FFA0.CCFD0E8E-ON00258A46.00549EDF-00258A46.0054BB62@gdc.ru/
"From:" line added to the mail
v2: https://lore.kernel.org/lkml/OF950BEF72.7F425944-ON00258A46.00488A76-00258A46.00497D44@gdc.ru/
braces for single statement removed according to Dmitry's note
v1: https://lore.kernel.org/lkml/OF28B2B8C9.5BC0CD28-ON00258A46.0037688F-00258A46.0039155B@gdc.ru/
Link: https://lore.kernel.org/r/OF66360032.51C36182-ON00258A48.003F656B-00258A48.0040092C@gdc.ru

Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-18 11:43:26 +01:00
..
hvc hvc/xen: fix error path in xen_hvc_init() to always register frontend driver 2024-11-18 11:43:21 +01:00
ipwireless Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
serdev Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
serial tty: serial: meson: fix hard LOCKUP on crtscts mode 2024-11-18 11:43:26 +01:00
vt Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
amiserial.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
cyclades.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ehv_bytechan.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
goldfish.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
isicom.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Kconfig Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Makefile Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
mips_ejtag_fdc.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
moxa.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
moxa.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
mxser.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
mxser.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
n_gsm.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
n_hdlc.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
n_null.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
n_r3964.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
n_tracerouter.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
n_tracesink.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
n_tracesink.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
n_tty.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
nozomi.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
pty.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
rocket.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
rocket.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
rocket_int.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
synclink.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
synclink_gt.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
synclinkmp.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
sysrq.c tty/sysrq: replace smp_processor_id() with get_cpu() 2024-11-18 11:43:21 +01:00
tty.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
tty_audit.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
tty_baudrate.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
tty_buffer.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
tty_io.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
tty_ioctl.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
tty_jobctrl.c tty: tty_jobctrl: fix pid memleak in disassociate_ctty() 2024-11-18 11:43:05 +01:00
tty_ldisc.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
tty_ldsem.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
tty_mutex.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
tty_port.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ttynull.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
vcc.c tty: vcc: Add check for kstrdup() in vcc_probe() 2024-11-18 11:43:14 +01:00