tty: xuartps: Keep lock for whole ISR
authorSoren Brinkmann <soren.brinkmann@xilinx.com>
Sat, 26 Dec 2015 10:43:54 +0000 (02:43 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 7 Feb 2016 06:52:09 +0000 (22:52 -0800)
The RX path in the interrupt handler released a lock unnecessarily.

Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com>
Reviewed-by: Peter Hurley <peter@hurleysoftware.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/xilinx_uartps.c

index 6ffd3bb..ab3995d 100644 (file)
@@ -265,9 +265,7 @@ static irqreturn_t cdns_uart_isr(int irq, void *dev_id)
                        uart_insert_char(port, isrstatus, CDNS_UART_IXR_OVERRUN,
                                        data, status);
                }
-               spin_unlock(&port->lock);
                tty_flip_buffer_push(&port->state->port);
-               spin_lock(&port->lock);
        }
 
        /* Dispatch an appropriate handler */