diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2021-08-30 08:55:18 -0700 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2021-09-03 10:08:15 +0200 |
commit | f4418015201bdca0cd4e28b363d88096206e4ad0 (patch) | |
tree | 244c7ed31167e2508c12d9243865d6b3870ab135 /drivers/tty/vt/vt_ioctl.c | |
parent | 8a19e00450869eef921f22684ab9df268a359336 (diff) | |
download | linux-stable-f4418015201bdca0cd4e28b363d88096206e4ad0.tar.gz linux-stable-f4418015201bdca0cd4e28b363d88096206e4ad0.tar.bz2 linux-stable-f4418015201bdca0cd4e28b363d88096206e4ad0.zip |
vt_kdsetmode: extend console locking
commit 2287a51ba822384834dafc1c798453375d1107c7 upstream.
As per the long-suffering comment.
Reported-by: Minh Yuan <yuanmingbuaa@gmail.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Jiri Slaby <jirislaby@kernel.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/tty/vt/vt_ioctl.c')
-rw-r--r-- | drivers/tty/vt/vt_ioctl.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/tty/vt/vt_ioctl.c b/drivers/tty/vt/vt_ioctl.c index b5d2ad900ec0..167c72726c5a 100644 --- a/drivers/tty/vt/vt_ioctl.c +++ b/drivers/tty/vt/vt_ioctl.c @@ -484,16 +484,19 @@ int vt_ioctl(struct tty_struct *tty, ret = -EINVAL; goto out; } - /* FIXME: this needs the console lock extending */ - if (vc->vc_mode == (unsigned char) arg) + console_lock(); + if (vc->vc_mode == (unsigned char) arg) { + console_unlock(); break; + } vc->vc_mode = (unsigned char) arg; - if (console != fg_console) + if (console != fg_console) { + console_unlock(); break; + } /* * explicitly blank/unblank the screen if switching modes */ - console_lock(); if (arg == KD_TEXT) do_unblank_screen(1); else |