Patch "serial: 8250: Skip uninitialized TTY port baud rate update" has been added to the 5.9-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    serial: 8250: Skip uninitialized TTY port baud rate update

to the 5.9-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     serial-8250-skip-uninitialized-tty-port-baud-rate-up.patch
and it can be found in the queue-5.9 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 411250a92943151aed63c48f9482f74269076ad0
Author: Serge Semin <Sergey.Semin@xxxxxxxxxxxxxxxxxxxx>
Date:   Wed Sep 23 19:19:49 2020 +0300

    serial: 8250: Skip uninitialized TTY port baud rate update
    
    [ Upstream commit c8dff3aa824177013d90967687f09f713a55d13f ]
    
    It is erroneous to update the TTY port baud rate if it hasn't been
    initialized yet, because in that case the TTY struct isn't set. So there
    is no termios structure to get and re-calculate the baud if the current
    baud can't be reached. Let's skip the baud rate update then until the port
    is fully initialized.
    
    Note the update UART clock method still sets the uartclk member with a new
    ref clock value even if the port is turned off. The new UART ref clock
    rate will be used later on the port starting up procedure.
    
    Fixes: 868f3ee6e452 ("serial: 8250: Add 8250 port clock update method")
    Tested-by: Hans de Goede <hdegoede@xxxxxxxxxx>
    Signed-off-by: Serge Semin <Sergey.Semin@xxxxxxxxxxxxxxxxxxxx>
    Link: https://lore.kernel.org/r/20200923161950.6237-3-Sergey.Semin@xxxxxxxxxxxxxxxxxxxx
    Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/tty/serial/8250/8250_port.c b/drivers/tty/serial/8250/8250_port.c
index 1259fb6b66b38..b0af13074cd36 100644
--- a/drivers/tty/serial/8250/8250_port.c
+++ b/drivers/tty/serial/8250/8250_port.c
@@ -2653,6 +2653,10 @@ void serial8250_update_uartclk(struct uart_port *port, unsigned int uartclk)
 		goto out_lock;
 
 	port->uartclk = uartclk;
+
+	if (!tty_port_initialized(&port->state->port))
+		goto out_lock;
+
 	termios = &port->state->port.tty->termios;
 
 	baud = serial8250_get_baud_rate(port, termios, NULL);



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux