diff options
Diffstat (limited to 'drivers/tty/serial')
| -rw-r--r-- | drivers/tty/serial/68328serial.c | 15 | ||||
| -rw-r--r-- | drivers/tty/serial/lpc32xx_hs.c | 6 | 
2 files changed, 5 insertions, 16 deletions
diff --git a/drivers/tty/serial/68328serial.c b/drivers/tty/serial/68328serial.c index 3719273cf0b..641a5a4d73d 100644 --- a/drivers/tty/serial/68328serial.c +++ b/drivers/tty/serial/68328serial.c @@ -262,8 +262,7 @@ static void rs_start(struct tty_struct *tty)  	local_irq_restore(flags);  } -static void receive_chars(struct m68k_serial *info, struct tty_struct *tty, -		unsigned short rx) +static void receive_chars(struct m68k_serial *info, unsigned short rx)  {  	m68328_uart *uart = &uart_addr[info->line];  	unsigned char ch, flag; @@ -293,9 +292,6 @@ static void receive_chars(struct m68k_serial *info, struct tty_struct *tty,  			}  		} -		if(!tty) -			goto clear_and_exit; -		  		flag = TTY_NORMAL;  		if (rx & URX_PARITY_ERROR) @@ -310,10 +306,7 @@ static void receive_chars(struct m68k_serial *info, struct tty_struct *tty,  	} while((rx = uart->urx.w) & URX_DATA_READY);  #endif -	tty_schedule_flip(tty); - -clear_and_exit: -	return; +	tty_schedule_flip(&info->tport);  }  static void transmit_chars(struct m68k_serial *info, struct tty_struct *tty) @@ -367,11 +360,11 @@ irqreturn_t rs_interrupt(int irq, void *dev_id)  	tx = uart->utx.w;  	if (rx & URX_DATA_READY) -		receive_chars(info, tty, rx); +		receive_chars(info, rx);  	if (tx & UTX_TX_AVAIL)  		transmit_chars(info, tty);  #else -	receive_chars(info, tty, rx); +	receive_chars(info, rx);  #endif  	tty_kref_put(tty); diff --git a/drivers/tty/serial/lpc32xx_hs.c b/drivers/tty/serial/lpc32xx_hs.c index c8448e6f52e..c01b58f3729 100644 --- a/drivers/tty/serial/lpc32xx_hs.c +++ b/drivers/tty/serial/lpc32xx_hs.c @@ -323,7 +323,6 @@ static irqreturn_t serial_lpc32xx_interrupt(int irq, void *dev_id)  {  	struct uart_port *port = dev_id;  	struct tty_port *port = &port->state->port; -	struct tty_struct *tty = tty_port_tty_get(tport);  	u32 status;  	spin_lock(&port->lock); @@ -348,9 +347,7 @@ static irqreturn_t serial_lpc32xx_interrupt(int irq, void *dev_id)  		       LPC32XX_HSUART_IIR(port->membase));  		port->icount.overrun++;  		tty_insert_flip_char(tport, 0, TTY_OVERRUN); -		if (tty) { -			tty_schedule_flip(tty); -		} +		tty_schedule_flip(tport);  	}  	/* Data received? */ @@ -366,7 +363,6 @@ static irqreturn_t serial_lpc32xx_interrupt(int irq, void *dev_id)  	}  	spin_unlock(&port->lock); -	tty_kref_put(tty);  	return IRQ_HANDLED;  }  |