diff options
author | Alan Cox <alan@linux.intel.com> | 2012-07-14 10:31:47 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-07-16 16:00:41 -0400 |
commit | adc8d746caa67fff4b53ba3e5163a6cbacc3b523 (patch) | |
tree | e3f6c05f27c163b369ddd4da5f31d2a61bde6d3a /drivers/usb/serial/digi_acceleport.c | |
parent | 6d31a88cb2e01d46c0cb74aa5da529e1f92ae3db (diff) |
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 <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb/serial/digi_acceleport.c')
-rw-r--r-- | drivers/usb/serial/digi_acceleport.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/drivers/usb/serial/digi_acceleport.c b/drivers/usb/serial/digi_acceleport.c index b5cd838093ef..afd9d2ec577b 100644 --- a/drivers/usb/serial/digi_acceleport.c +++ b/drivers/usb/serial/digi_acceleport.c | |||
@@ -687,8 +687,8 @@ static void digi_set_termios(struct tty_struct *tty, | |||
687 | struct usb_serial_port *port, struct ktermios *old_termios) | 687 | struct usb_serial_port *port, struct ktermios *old_termios) |
688 | { | 688 | { |
689 | struct digi_port *priv = usb_get_serial_port_data(port); | 689 | struct digi_port *priv = usb_get_serial_port_data(port); |
690 | unsigned int iflag = tty->termios->c_iflag; | 690 | unsigned int iflag = tty->termios.c_iflag; |
691 | unsigned int cflag = tty->termios->c_cflag; | 691 | unsigned int cflag = tty->termios.c_cflag; |
692 | unsigned int old_iflag = old_termios->c_iflag; | 692 | unsigned int old_iflag = old_termios->c_iflag; |
693 | unsigned int old_cflag = old_termios->c_cflag; | 693 | unsigned int old_cflag = old_termios->c_cflag; |
694 | unsigned char buf[32]; | 694 | unsigned char buf[32]; |
@@ -709,7 +709,7 @@ static void digi_set_termios(struct tty_struct *tty, | |||
709 | /* don't set RTS if using hardware flow control */ | 709 | /* don't set RTS if using hardware flow control */ |
710 | /* and throttling input */ | 710 | /* and throttling input */ |
711 | modem_signals = TIOCM_DTR; | 711 | modem_signals = TIOCM_DTR; |
712 | if (!(tty->termios->c_cflag & CRTSCTS) || | 712 | if (!(tty->termios.c_cflag & CRTSCTS) || |
713 | !test_bit(TTY_THROTTLED, &tty->flags)) | 713 | !test_bit(TTY_THROTTLED, &tty->flags)) |
714 | modem_signals |= TIOCM_RTS; | 714 | modem_signals |= TIOCM_RTS; |
715 | digi_set_modem_signals(port, modem_signals, 1); | 715 | digi_set_modem_signals(port, modem_signals, 1); |
@@ -748,7 +748,7 @@ static void digi_set_termios(struct tty_struct *tty, | |||
748 | } | 748 | } |
749 | } | 749 | } |
750 | /* set parity */ | 750 | /* set parity */ |
751 | tty->termios->c_cflag &= ~CMSPAR; | 751 | tty->termios.c_cflag &= ~CMSPAR; |
752 | 752 | ||
753 | if ((cflag&(PARENB|PARODD)) != (old_cflag&(PARENB|PARODD))) { | 753 | if ((cflag&(PARENB|PARODD)) != (old_cflag&(PARENB|PARODD))) { |
754 | if (cflag&PARENB) { | 754 | if (cflag&PARENB) { |
@@ -1124,8 +1124,8 @@ static int digi_open(struct tty_struct *tty, struct usb_serial_port *port) | |||
1124 | 1124 | ||
1125 | /* set termios settings */ | 1125 | /* set termios settings */ |
1126 | if (tty) { | 1126 | if (tty) { |
1127 | not_termios.c_cflag = ~tty->termios->c_cflag; | 1127 | not_termios.c_cflag = ~tty->termios.c_cflag; |
1128 | not_termios.c_iflag = ~tty->termios->c_iflag; | 1128 | not_termios.c_iflag = ~tty->termios.c_iflag; |
1129 | digi_set_termios(tty, port, ¬_termios); | 1129 | digi_set_termios(tty, port, ¬_termios); |
1130 | } | 1130 | } |
1131 | return 0; | 1131 | return 0; |
@@ -1500,7 +1500,7 @@ static int digi_read_oob_callback(struct urb *urb) | |||
1500 | 1500 | ||
1501 | rts = 0; | 1501 | rts = 0; |
1502 | if (tty) | 1502 | if (tty) |
1503 | rts = tty->termios->c_cflag & CRTSCTS; | 1503 | rts = tty->termios.c_cflag & CRTSCTS; |
1504 | 1504 | ||
1505 | if (tty && opcode == DIGI_CMD_READ_INPUT_SIGNALS) { | 1505 | if (tty && opcode == DIGI_CMD_READ_INPUT_SIGNALS) { |
1506 | spin_lock(&priv->dp_port_lock); | 1506 | spin_lock(&priv->dp_port_lock); |