Bluetooth: hci_ldisc: Fix tty_set_termios() return value assumptions
authorIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
Thu, 9 Mar 2023 08:20:30 +0000 (10:20 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 17 Mar 2023 14:01:08 +0000 (15:01 +0100)
tty_set_termios() never returns anything else than 0. Make the debug
prints to look directly into the new termios instead to check CRTSCTS
state.

Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Link: https://lore.kernel.org/r/20230309082035.14880-4-ilpo.jarvinen@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/bluetooth/hci_ldisc.c

index 865112e..efdda2c 100644 (file)
@@ -323,9 +323,9 @@ void hci_uart_set_flow_control(struct hci_uart *hu, bool enable)
                /* Disable hardware flow control */
                ktermios = tty->termios;
                ktermios.c_cflag &= ~CRTSCTS;
-               status = tty_set_termios(tty, &ktermios);
+               tty_set_termios(tty, &ktermios);
                BT_DBG("Disabling hardware flow control: %s",
-                      status ? "failed" : "success");
+                      (tty->termios.c_cflag & CRTSCTS) ? "failed" : "success");
 
                /* Clear RTS to prevent the device from sending */
                /* Most UARTs need OUT2 to enable interrupts */
@@ -357,9 +357,9 @@ void hci_uart_set_flow_control(struct hci_uart *hu, bool enable)
                /* Re-enable hardware flow control */
                ktermios = tty->termios;
                ktermios.c_cflag |= CRTSCTS;
-               status = tty_set_termios(tty, &ktermios);
+               tty_set_termios(tty, &ktermios);
                BT_DBG("Enabling hardware flow control: %s",
-                      status ? "failed" : "success");
+                      !(tty->termios.c_cflag & CRTSCTS) ? "failed" : "success");
        }
 }