diff --git a/drivers/serial/uart_rpmsg.c b/drivers/serial/uart_rpmsg.c index 7cc1587db76..97c7dd3ef33 100644 --- a/drivers/serial/uart_rpmsg.c +++ b/drivers/serial/uart_rpmsg.c @@ -161,6 +161,7 @@ static bool uart_rpmsg_rxflowcontrol(FAR struct uart_dev_s *dev, FAR struct uart_rpmsg_priv_s *priv = dev->priv; FAR struct uart_rpmsg_wakeup_s msg; + nxmutex_lock(&priv->lock); if (!upper && upper != priv->last_upper) { memset(&msg, 0, sizeof(msg)); @@ -173,6 +174,7 @@ static bool uart_rpmsg_rxflowcontrol(FAR struct uart_dev_s *dev, } priv->last_upper = upper; + nxmutex_unlock(&priv->lock); return false; }