mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 03:01:39 -04:00
tty: move the termios object into the tty
This will let us sort out a whole pile of tty related races. The alternative would be to keep points and refcount the termios objects. However 1. They are tiny anyway 2. Many devices don't use the stored copies 3. We can remove a pty special case Signed-off-by: Alan Cox <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
This commit is contained in:
parent
6d31a88cb2
commit
adc8d746ca
65 changed files with 409 additions and 435 deletions
|
|
@ -446,8 +446,8 @@ static void if_set_termios(struct tty_struct *tty, struct ktermios *old)
|
|||
goto out;
|
||||
}
|
||||
|
||||
iflag = tty->termios->c_iflag;
|
||||
cflag = tty->termios->c_cflag;
|
||||
iflag = tty->termios.c_iflag;
|
||||
cflag = tty->termios.c_cflag;
|
||||
old_cflag = old ? old->c_cflag : cflag;
|
||||
gig_dbg(DEBUG_IF, "%u: iflag %x cflag %x old %x",
|
||||
cs->minor_index, iflag, cflag, old_cflag);
|
||||
|
|
|
|||
|
|
@ -1009,15 +1009,15 @@ isdn_tty_change_speed(modem_info *info)
|
|||
quot;
|
||||
int i;
|
||||
|
||||
if (!port->tty || !port->tty->termios)
|
||||
if (!port->tty)
|
||||
return;
|
||||
cflag = port->tty->termios->c_cflag;
|
||||
cflag = port->tty->termios.c_cflag;
|
||||
|
||||
quot = i = cflag & CBAUD;
|
||||
if (i & CBAUDEX) {
|
||||
i &= ~CBAUDEX;
|
||||
if (i < 1 || i > 2)
|
||||
port->tty->termios->c_cflag &= ~CBAUDEX;
|
||||
port->tty->termios.c_cflag &= ~CBAUDEX;
|
||||
else
|
||||
i += 15;
|
||||
}
|
||||
|
|
@ -1097,7 +1097,7 @@ isdn_tty_shutdown(modem_info *info)
|
|||
#endif
|
||||
isdn_unlock_drivers();
|
||||
info->msr &= ~UART_MSR_RI;
|
||||
if (!info->port.tty || (info->port.tty->termios->c_cflag & HUPCL)) {
|
||||
if (!info->port.tty || (info->port.tty->termios.c_cflag & HUPCL)) {
|
||||
info->mcr &= ~(UART_MCR_DTR | UART_MCR_RTS);
|
||||
if (info->emu.mdmreg[REG_DTRHUP] & BIT_DTRHUP) {
|
||||
isdn_tty_modem_reset_regs(info, 0);
|
||||
|
|
@ -1469,13 +1469,13 @@ isdn_tty_set_termios(struct tty_struct *tty, struct ktermios *old_termios)
|
|||
if (!old_termios)
|
||||
isdn_tty_change_speed(info);
|
||||
else {
|
||||
if (tty->termios->c_cflag == old_termios->c_cflag &&
|
||||
tty->termios->c_ispeed == old_termios->c_ispeed &&
|
||||
tty->termios->c_ospeed == old_termios->c_ospeed)
|
||||
if (tty->termios.c_cflag == old_termios->c_cflag &&
|
||||
tty->termios.c_ispeed == old_termios->c_ispeed &&
|
||||
tty->termios.c_ospeed == old_termios->c_ospeed)
|
||||
return;
|
||||
isdn_tty_change_speed(info);
|
||||
if ((old_termios->c_cflag & CRTSCTS) &&
|
||||
!(tty->termios->c_cflag & CRTSCTS))
|
||||
!(tty->termios.c_cflag & CRTSCTS))
|
||||
tty->hw_stopped = 0;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue