diff --git a/drivers/tty/serial/serial_core.c b/drivers/tty/serial/serial_core.c
index 83c419ac78bcaf07634b3caa191369e3c1353058..0c6c633c0924a81330569d71d2b83dfb24c23c26 100644
--- a/drivers/tty/serial/serial_core.c
+++ b/drivers/tty/serial/serial_core.c
@@ -147,7 +147,7 @@ static void __uart_start(struct tty_struct *tty)
 
 	/* Increment the runtime PM usage count for the active check below */
 	err = pm_runtime_get(&port_dev->dev);
-	if (err < 0) {
+	if (err < 0 && err != -EINPROGRESS) {
 		pm_runtime_put_noidle(&port_dev->dev);
 		return;
 	}