serial: core: lock port for start_rx() in uart_resume_port()
[platform/kernel/linux-starfive.git] / drivers / tty / serial / serial_core.c
index b0a4677..2cc5c68 100644 (file)
@@ -2431,8 +2431,11 @@ int uart_resume_port(struct uart_driver *drv, struct uart_port *uport)
                if (console_suspend_enabled)
                        uart_change_pm(state, UART_PM_STATE_ON);
                uport->ops->set_termios(uport, &termios, NULL);
-               if (!console_suspend_enabled && uport->ops->start_rx)
+               if (!console_suspend_enabled && uport->ops->start_rx) {
+                       spin_lock_irq(&uport->lock);
                        uport->ops->start_rx(uport);
+                       spin_unlock_irq(&uport->lock);
+               }
                if (console_suspend_enabled)
                        console_start(uport->cons);
        }