TTY: um/line, add tty_port
And use count from there. Signed-off-by: Jiri Slaby <jslaby@suse.cz> Cc: Jeff Dike <jdike@addtoit.com> Cc: Richard Weinberger <richard@nod.at> Cc: user-mode-linux-devel@lists.sourceforge.net Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Родитель
c0e7865003
Коммит
042e6c29c1
|
@ -404,7 +404,7 @@ int line_open(struct line *lines, struct tty_struct *tty)
|
||||||
goto out_unlock;
|
goto out_unlock;
|
||||||
|
|
||||||
err = 0;
|
err = 0;
|
||||||
if (line->count++)
|
if (line->port.count++)
|
||||||
goto out_unlock;
|
goto out_unlock;
|
||||||
|
|
||||||
BUG_ON(tty->driver_data);
|
BUG_ON(tty->driver_data);
|
||||||
|
@ -446,7 +446,7 @@ void line_close(struct tty_struct *tty, struct file * filp)
|
||||||
mutex_lock(&line->count_lock);
|
mutex_lock(&line->count_lock);
|
||||||
BUG_ON(!line->valid);
|
BUG_ON(!line->valid);
|
||||||
|
|
||||||
if (--line->count)
|
if (--line->port.count)
|
||||||
goto out_unlock;
|
goto out_unlock;
|
||||||
|
|
||||||
line->tty = NULL;
|
line->tty = NULL;
|
||||||
|
@ -478,7 +478,7 @@ int setup_one_line(struct line *lines, int n, char *init,
|
||||||
|
|
||||||
mutex_lock(&line->count_lock);
|
mutex_lock(&line->count_lock);
|
||||||
|
|
||||||
if (line->count) {
|
if (line->port.count) {
|
||||||
*error_out = "Device is already open";
|
*error_out = "Device is already open";
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
@ -663,6 +663,7 @@ int register_lines(struct line_driver *line_driver,
|
||||||
driver->init_termios = tty_std_termios;
|
driver->init_termios = tty_std_termios;
|
||||||
|
|
||||||
for (i = 0; i < nlines; i++) {
|
for (i = 0; i < nlines; i++) {
|
||||||
|
tty_port_init(&lines[i].port);
|
||||||
spin_lock_init(&lines[i].lock);
|
spin_lock_init(&lines[i].lock);
|
||||||
mutex_init(&lines[i].count_lock);
|
mutex_init(&lines[i].count_lock);
|
||||||
lines[i].driver = line_driver;
|
lines[i].driver = line_driver;
|
||||||
|
|
|
@ -32,9 +32,9 @@ struct line_driver {
|
||||||
};
|
};
|
||||||
|
|
||||||
struct line {
|
struct line {
|
||||||
|
struct tty_port port;
|
||||||
struct tty_struct *tty;
|
struct tty_struct *tty;
|
||||||
struct mutex count_lock;
|
struct mutex count_lock;
|
||||||
unsigned long count;
|
|
||||||
int valid;
|
int valid;
|
||||||
|
|
||||||
char *init_str;
|
char *init_str;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче