]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
serial: 8250_port: do not use goto for UPQ_NO_TXEN_TEST code flow
authorJiri Slaby (SUSE) <jirislaby@kernel.org>
Mon, 17 Mar 2025 07:00:44 +0000 (08:00 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 20 Mar 2025 15:00:52 +0000 (08:00 -0700)
This is unnecessary here and makes the code harder to follow. Invert the
condition and drop the goto+label.

Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org>
Link: https://lore.kernel.org/r/20250317070046.24386-30-jirislaby@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/8250/8250_port.c

index 3f256e96c7220dac4e06b9f4032576c2127dc996..6466f60416a9fe43fc0ab344fcc9f95428465d4b 100644 (file)
@@ -2406,28 +2406,26 @@ int serial8250_do_startup(struct uart_port *port)
         * test if we receive TX irq.  This way, we'll never enable
         * UART_BUG_TXEN.
         */
-       if (up->port.quirks & UPQ_NO_TXEN_TEST)
-               goto dont_test_tx_en;
-
-       /*
-        * Do a quick test to see if we receive an interrupt when we enable
-        * the TX irq.
-        */
-       serial_port_out(port, UART_IER, UART_IER_THRI);
-       lsr = serial_port_in(port, UART_LSR);
-       iir = serial_port_in(port, UART_IIR);
-       serial_port_out(port, UART_IER, 0);
+       if (!(up->port.quirks & UPQ_NO_TXEN_TEST)) {
+               /*
+                * Do a quick test to see if we receive an interrupt when we
+                * enable the TX irq.
+                */
+               serial_port_out(port, UART_IER, UART_IER_THRI);
+               lsr = serial_port_in(port, UART_LSR);
+               iir = serial_port_in(port, UART_IIR);
+               serial_port_out(port, UART_IER, 0);
 
-       if (lsr & UART_LSR_TEMT && iir & UART_IIR_NO_INT) {
-               if (!(up->bugs & UART_BUG_TXEN)) {
-                       up->bugs |= UART_BUG_TXEN;
-                       dev_dbg(port->dev, "enabling bad tx status workarounds\n");
+               if (lsr & UART_LSR_TEMT && iir & UART_IIR_NO_INT) {
+                       if (!(up->bugs & UART_BUG_TXEN)) {
+                               up->bugs |= UART_BUG_TXEN;
+                               dev_dbg(port->dev, "enabling bad tx status workarounds\n");
+                       }
+               } else {
+                       up->bugs &= ~UART_BUG_TXEN;
                }
-       } else {
-               up->bugs &= ~UART_BUG_TXEN;
        }
 
-dont_test_tx_en:
        uart_port_unlock_irqrestore(port, flags);
 
        /*