serial: Rename hw_stopped to old_hw_stopped & improve logic
authorIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
Thu, 9 Mar 2023 08:09:22 +0000 (10:09 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 17 Mar 2023 14:00:40 +0000 (15:00 +0100)
hw_stopped in uart_change_line_settings() stores old hw_stopped, thus
rename it appropriately.

Alter logic to check first if the hw_stopped was changed, and then pick
which function to call if it was because the logic is more obvious that
way.

Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Link: https://lore.kernel.org/r/20230309080923.11778-8-ilpo.jarvinen@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/serial_core.c

index 31b69e6..c494cb3 100644 (file)
@@ -182,7 +182,7 @@ static void uart_change_line_settings(struct tty_struct *tty, struct uart_state
 {
        struct uart_port *uport = uart_port_check(state);
        struct ktermios *termios;
-       bool hw_stopped;
+       bool old_hw_stopped;
 
        /*
         * If we have no tty, termios, or the port does not exist,
@@ -209,14 +209,13 @@ static void uart_change_line_settings(struct tty_struct *tty, struct uart_state
                uport->status |= UPSTAT_DCD_ENABLE;
 
        /* reset sw-assisted CTS flow control based on (possibly) new mode */
-       hw_stopped = uport->hw_stopped;
+       old_hw_stopped = uport->hw_stopped;
        uport->hw_stopped = uart_softcts_mode(uport) &&
                            !(uport->ops->get_mctrl(uport) & TIOCM_CTS);
-       if (uport->hw_stopped) {
-               if (!hw_stopped)
+       if (uport->hw_stopped != old_hw_stopped) {
+               if (!old_hw_stopped)
                        uport->ops->stop_tx(uport);
-       } else {
-               if (hw_stopped)
+               else
                        __uart_start(tty);
        }
        spin_unlock_irq(&uport->lock);