++Doug Hi, > -----Original Message----- > From: John Ogness <john.ogness@xxxxxxxxxxxxx> > Sent: Thursday, May 25, 2023 3:02 PM > To: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> > Cc: Petr Mladek <pmladek@xxxxxxxx>; Thomas Gleixner > <tglx@xxxxxxxxxxxxx>; linux-kernel@xxxxxxxxxxxxxxx; Jiri Slaby > <jirislaby@xxxxxxxxxx>; Vijaya Krishna Nivarthi (Temp) (QUIC) > <quic_vnivarth@xxxxxxxxxxx>; linux-serial@xxxxxxxxxxxxxxx > Subject: [PATCH tty v1 2/8] serial: core: lock port for stop_rx() in > uart_suspend_port() > > WARNING: This email originated from outside of Qualcomm. Please be wary > of any links or attachments, and do not enable macros. > > The uarts_ops stop_rx() callback expects that the port->lock is taken and > interrupts are disabled. > > Fixes: c9d2325cdb92 ("serial: core: Do stop_rx in suspend path for console if > console_suspend is disabled") > Signed-off-by: John Ogness <john.ogness@xxxxxxxxxxxxx> > --- > drivers/tty/serial/serial_core.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/drivers/tty/serial/serial_core.c b/drivers/tty/serial/serial_core.c > index 4b98d13555c0..37ad53616372 100644 > --- a/drivers/tty/serial/serial_core.c > +++ b/drivers/tty/serial/serial_core.c > @@ -2333,8 +2333,11 @@ int uart_suspend_port(struct uart_driver *drv, > struct uart_port *uport) > * able to Re-start_rx later. > */ > if (!console_suspend_enabled && uart_console(uport)) { > - if (uport->ops->start_rx) > + if (uport->ops->start_rx) { > + spin_lock_irq(&uport->lock); > uport->ops->stop_rx(uport); > + spin_unlock_irq(&uport->lock); > + } Looks correct to me. Thank you for the fix. -Vijay/ > goto unlock; > } > > -- > 2.30.2