diff options
Diffstat (limited to 'drivers/serial/omap-serial.c')
-rw-r--r-- | drivers/serial/omap-serial.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/serial/omap-serial.c b/drivers/serial/omap-serial.c index b40a9118e750..d69a5edb6105 100644 --- a/drivers/serial/omap-serial.c +++ b/drivers/serial/omap-serial.c @@ -353,7 +353,7 @@ static inline irqreturn_t serial_omap_irq(int irq, void *dev_id) spin_lock_irqsave(&up->port.lock, flags); lsr = serial_in(up, UART_LSR); - if (iir & UART_IER_RLSI) { + if (iir & UART_IIR_RLSI) { if (!up->use_dma) { if (lsr & UART_LSR_DR) receive_chars(up, &lsr); @@ -917,6 +917,7 @@ serial_omap_console_write(struct console *co, const char *s, struct uart_omap_port *up = serial_omap_console_ports[co->index]; unsigned int ier; + spin_lock(&up->port.lock); /* * First save the IER then disable the interrupts */ @@ -940,6 +941,8 @@ serial_omap_console_write(struct console *co, const char *s, */ if (up->msr_saved_flags) check_modem_status(up); + + spin_unlock(&up->port.lock); } static int __init |