serial: qcom_geni_serial: Process sysrq at port unlock time
authorDouglas Anderson <dianders@chromium.org>
Tue, 30 Oct 2018 22:11:05 +0000 (15:11 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 9 Nov 2018 17:07:17 +0000 (09:07 -0800)
Let's take advantage of the new ("serial: core: Allow processing sysrq
at port unlock time") to handle sysrqs more cleanly.

Signed-off-by: Douglas Anderson <dianders@chromium.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/qcom_geni_serial.c

index 864c0e8..ac001c0 100644 (file)
@@ -497,9 +497,7 @@ static int handle_rx_console(struct uart_port *uport, u32 bytes, bool drop)
                                        continue;
                        }
 
-                       spin_unlock(&uport->lock);
-                       sysrq = uart_handle_sysrq_char(uport, buf[c]);
-                       spin_lock(&uport->lock);
+                       sysrq = uart_prepare_sysrq_char(uport, buf[c]);
 
                        if (!sysrq)
                                tty_insert_flip_char(tport, buf[c], TTY_NORMAL);
@@ -809,7 +807,8 @@ static irqreturn_t qcom_geni_serial_isr(int isr, void *dev)
                qcom_geni_serial_handle_rx(uport, drop_rx);
 
 out_unlock:
-       spin_unlock_irqrestore(&uport->lock, flags);
+       uart_unlock_and_check_sysrq(uport, flags);
+
        return IRQ_HANDLED;
 }