diff options
author | David S. Miller <davem@davemloft.net> | 2005-10-11 05:43:22 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2005-10-11 05:43:22 +0200 |
commit | b8df110fea555d5088bba67f446c2435104405be (patch) | |
tree | 1bb8dfc1a6eadcab3e6df99aff4ae6cde38e94b4 /drivers | |
parent | Linux v2.6.14-rc4 (diff) | |
download | linux-b8df110fea555d5088bba67f446c2435104405be.tar.xz linux-b8df110fea555d5088bba67f446c2435104405be.zip |
[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 e971156daa60..ba9381fd3f2d 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 d75445738c88..7653d6cf05af 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; |