linux-stable/drivers/tty/vt
Linus Torvalds 6bd23e0c2b tty: add the option to have a tty reject a new ldisc
... and use it to limit the virtual terminals to just N_TTY.  They are
kind of special, and in particular, the "con_write()" routine violates
the "writes cannot sleep" rule that some ldiscs rely on.

This avoids the

   BUG: sleeping function called from invalid context at kernel/printk/printk.c:2659

when N_GSM has been attached to a virtual console, and gsmld_write()
calls con_write() while holding a spinlock, and con_write() then tries
to get the console lock.

Tested-by: Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
Cc: Jiri Slaby <jirislaby@kernel.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Daniel Starke <daniel.starke@siemens.com>
Reported-by: syzbot <syzbot+dbac96d8e73b61aa559c@syzkaller.appspotmail.com>
Closes: https://syzkaller.appspot.com/bug?extid=dbac96d8e73b61aa559c
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Link: https://lore.kernel.org/r/20240423163339.59780-1-torvalds@linux-foundation.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-05-04 18:45:11 +02:00
..
.gitignore .gitignore: prefix local generated files with a slash 2021-05-02 00:43:35 +09:00
conmakehash.c tty: vt: conmakehash: Don't mention the full path of the input in output 2024-04-09 15:50:12 +02:00
consolemap.c drivers/tty/vt: use standard array-copy-functions 2023-11-25 07:23:16 +00:00
cp437.uni tty: fix up a few remaining files without SPDX identifiers 2019-04-04 18:48:43 +02:00
defkeymap.c_shipped tty/vt: defkeymap.c_shipped, little unification with loadkeys 2022-06-10 13:34:17 +02:00
defkeymap.map tty: fix up a few remaining files without SPDX identifiers 2019-04-04 18:48:43 +02:00
keyboard.c drivers/tty/vt: use standard array-copy-functions 2023-11-25 07:23:16 +00:00
Makefile vt: remove superfluous CONFIG_HW_CONSOLE 2024-01-27 19:03:51 -08:00
selection.c tty: vt: fix up kernel-doc 2024-01-27 18:08:55 -08:00
vc_screen.c tty: vc_screen: make vc_class constant 2023-10-07 11:18:51 +02:00
vt_ioctl.c tty: vt: pass vc_resize_user as a parameter 2024-01-27 18:08:52 -08:00
vt.c tty: add the option to have a tty reject a new ldisc 2024-05-04 18:45:11 +02:00