Messages in this thread | | | From | "Vijaya Krishna Nivarthi (Temp) (QUIC)" <> | Subject | RE: [PATCH tty v1 2/8] serial: core: lock port for stop_rx() in uart_suspend_port() | Date | Thu, 25 May 2023 17:47:05 +0000 |
| |
++Doug
Hi,
> -----Original Message----- > From: John Ogness <john.ogness@linutronix.de> > Sent: Thursday, May 25, 2023 3:02 PM > To: Greg Kroah-Hartman <gregkh@linuxfoundation.org> > Cc: Petr Mladek <pmladek@suse.com>; Thomas Gleixner > <tglx@linutronix.de>; linux-kernel@vger.kernel.org; Jiri Slaby > <jirislaby@kernel.org>; Vijaya Krishna Nivarthi (Temp) (QUIC) > <quic_vnivarth@quicinc.com>; linux-serial@vger.kernel.org > 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@linutronix.de> > --- > 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
| |