diff --git a/net/rpmsg/rpmsg_sockif.c b/net/rpmsg/rpmsg_sockif.c index 5ce5021ff1d..e1d547f4f83 100644 --- a/net/rpmsg/rpmsg_sockif.c +++ b/net/rpmsg/rpmsg_sockif.c @@ -296,9 +296,11 @@ static int rpmsg_socket_ept_cb(FAR struct rpmsg_endpoint *ept, if (head->cmd == RPMSG_SOCKET_CMD_SYNC) { + rpmsg_socket_lock(&conn->recvlock); conn->sendsize = head->size; conn->psock->s_flags |= _SF_CONNECTED; _SO_SETERRNO(conn->psock, OK); + rpmsg_socket_unlock(&conn->recvlock); rpmsg_socket_post(&conn->sendsem); rpmsg_socket_pollnotify(conn, POLLOUT); }