diff options
author | David S. Miller <davem@davemloft.net> | 2005-10-10 20:43:22 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2005-10-10 20:43:22 -0700 |
commit | b8df110fea555d5088bba67f446c2435104405be (patch) | |
tree | 1bb8dfc1a6eadcab3e6df99aff4ae6cde38e94b4 /drivers | |
parent | 907a42617970a159361f17ef9a63f04d276995ab (diff) | |
download | op-kernel-dev-b8df110fea555d5088bba67f446c2435104405be.zip op-kernel-dev-b8df110fea555d5088bba67f446c2435104405be.tar.gz |
[SPARC64]: Fix oops on runlevel change with serial console.
Incorrect uart_write_wakeup() calls cause reference to a
NULL tty pointer in sunsab and sunzilog serial drivers.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/serial/sunsab.c | 1 | ||||
-rw-r--r-- | drivers/serial/sunzilog.c | 5 |
2 files changed, 2 insertions, 4 deletions
diff --git a/drivers/serial/sunsab.c b/drivers/serial/sunsab.c index e971156..ba9381f 100644 --- a/drivers/serial/sunsab.c +++ b/drivers/serial/sunsab.c @@ -274,7 +274,6 @@ static void transmit_chars(struct uart_sunsab_port *up, if (uart_circ_empty(xmit) || uart_tx_stopped(&up->port)) { up->interrupt_mask1 |= SAB82532_IMR1_XPR; writeb(up->interrupt_mask1, &up->regs->w.imr1); - uart_write_wakeup(&up->port); return; } diff --git a/drivers/serial/sunzilog.c b/drivers/serial/sunzilog.c index d754457..7653d6c 100644 --- a/drivers/serial/sunzilog.c +++ b/drivers/serial/sunzilog.c @@ -517,10 +517,9 @@ static void sunzilog_transmit_chars(struct uart_sunzilog_port *up, if (up->port.info == NULL) goto ack_tx_int; xmit = &up->port.info->xmit; - if (uart_circ_empty(xmit)) { - uart_write_wakeup(&up->port); + if (uart_circ_empty(xmit)) goto ack_tx_int; - } + if (uart_tx_stopped(&up->port)) goto ack_tx_int; |