Commit e0426e6a authored by Jiri Slaby's avatar Jiri Slaby Committed by Linus Torvalds

vt: hold console_sem across sysfs operations

Hold console sem while creating/destroying sysfs files.  Serialisation is
so far done by BKL held in tty release_dev and chrdev_open, but no other
locks are held in open path.
Signed-off-by: default avatarJiri Slaby <jirislaby@gmail.com>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: Aristeu Rozanski <aris@ruivo.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent bbe48ecc
...@@ -2749,8 +2749,8 @@ static int con_open(struct tty_struct *tty, struct file *filp) ...@@ -2749,8 +2749,8 @@ static int con_open(struct tty_struct *tty, struct file *filp)
tty->termios->c_iflag |= IUTF8; tty->termios->c_iflag |= IUTF8;
else else
tty->termios->c_iflag &= ~IUTF8; tty->termios->c_iflag &= ~IUTF8;
release_console_sem();
vcs_make_sysfs(tty); vcs_make_sysfs(tty);
release_console_sem();
return ret; return ret;
} }
} }
...@@ -2775,8 +2775,8 @@ static void con_close(struct tty_struct *tty, struct file *filp) ...@@ -2775,8 +2775,8 @@ static void con_close(struct tty_struct *tty, struct file *filp)
if (vc) if (vc)
vc->vc_tty = NULL; vc->vc_tty = NULL;
tty->driver_data = NULL; tty->driver_data = NULL;
release_console_sem();
vcs_remove_sysfs(tty); vcs_remove_sysfs(tty);
release_console_sem();
mutex_unlock(&tty_mutex); mutex_unlock(&tty_mutex);
/* /*
* tty_mutex is released, but we still hold BKL, so there is * tty_mutex is released, but we still hold BKL, so there is
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment