This is an automated email from the ASF dual-hosted git repository.
xiaoxiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git
The following commit(s) were added to refs/heads/master by this push:
new 8db038c ioe_rpmsg: use rptun_wait/post to resolve deadlock with
usrsock
8db038c is described below
commit 8db038c18acae2839ee091ac018370e9facedf17
Author: ligd <[email protected]>
AuthorDate: Tue Jan 18 15:52:32 2022 +0800
ioe_rpmsg: use rptun_wait/post to resolve deadlock with usrsock
Signed-off-by: ligd <[email protected]>
---
drivers/ioexpander/ioe_rpmsg.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/drivers/ioexpander/ioe_rpmsg.c b/drivers/ioexpander/ioe_rpmsg.c
index 0f536ff..4cb1d00 100755
--- a/drivers/ioexpander/ioe_rpmsg.c
+++ b/drivers/ioexpander/ioe_rpmsg.c
@@ -237,13 +237,13 @@ static int ioe_rpmsg_wait_ready(FAR struct rpmsg_endpoint
*ept)
FAR struct ioe_rpmsg_client_s *priv =
container_of(ept, struct ioe_rpmsg_client_s, ept);
- ret = nxsem_wait_uninterruptible(&priv->sem);
+ ret = rpmsg_wait(ept, &priv->sem);
if (ret < 0)
{
return ret;
}
- nxsem_post(&priv->sem);
+ rpmsg_post(ept, &priv->sem);
}
return ret;
@@ -281,7 +281,7 @@ static int ioe_rpmsg_sendrecv(FAR struct rpmsg_endpoint
*ept,
return ret;
}
- ret = nxsem_wait_uninterruptible(&cookie.sem);
+ ret = rpmsg_wait(ept, &cookie.sem);
if (ret < 0)
{
return ret;
@@ -550,7 +550,7 @@ static int ioe_rpmsg_ept_cb(FAR struct rpmsg_endpoint *ept,
FAR void *data,
if (msg->response && cookie)
{
cookie->result = msg->result;
- nxsem_post(&cookie->sem);
+ rpmsg_post(ept, &cookie->sem);
ret = 0;
}
else if (cmd < ARRAY_SIZE(g_ioe_rpmsg_handler)
@@ -577,7 +577,7 @@ static void ioe_rpmsg_client_created(FAR struct
rpmsg_device *rdev,
rpmsg_create_ept(&priv->ept, rdev, eptname, RPMSG_ADDR_ANY,
RPMSG_ADDR_ANY, ioe_rpmsg_ept_cb, NULL);
- nxsem_post(&priv->sem);
+ rpmsg_post(&priv->ept, &priv->sem);
}
}
@@ -588,7 +588,7 @@ static void ioe_rpmsg_client_destroy(FAR struct
rpmsg_device *rdev,
if (!strcmp(priv->cpuname, rpmsg_get_cpuname(rdev)))
{
- nxsem_wait(&priv->sem);
+ rpmsg_wait(&priv->ept, &priv->sem);
rpmsg_destroy_ept(&priv->ept);
}
}