You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by pk...@apache.org on 2022/07/23 05:16:56 UTC

[incubator-nuttx] 03/05: socket_rpmsg: set poll err instead return err

This is an automated email from the ASF dual-hosted git repository.

pkarashchenko pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git

commit ba990619ed11625286e174f16df96eafc608a1d3
Author: ligd <li...@xiaomi.com>
AuthorDate: Wed Jul 6 22:19:35 2022 +0800

    socket_rpmsg: set poll err instead return err
    
    Signed-off-by: ligd <li...@xiaomi.com>
---
 net/rpmsg/rpmsg_sockif.c | 32 ++++++++++++++++----------------
 1 file changed, 16 insertions(+), 16 deletions(-)

diff --git a/net/rpmsg/rpmsg_sockif.c b/net/rpmsg/rpmsg_sockif.c
index 9130fe600c..096e6072b9 100644
--- a/net/rpmsg/rpmsg_sockif.c
+++ b/net/rpmsg/rpmsg_sockif.c
@@ -862,27 +862,28 @@ static int rpmsg_socket_poll(FAR struct socket *psock,
         {
           if (!conn->ept.rdev)
             {
-              ret = -ECONNRESET;
-              goto errout;
+              eventset |= POLLHUP;
             }
+          else
+            {
+              rpmsg_socket_lock(&conn->sendlock);
 
-          rpmsg_socket_lock(&conn->sendlock);
+              if (rpmsg_socket_get_space(conn) > 0)
+                {
+                  eventset |= (fds->events & POLLOUT);
+                }
 
-          if (rpmsg_socket_get_space(conn) > 0)
-            {
-              eventset |= (fds->events & POLLOUT);
-            }
+              rpmsg_socket_unlock(&conn->sendlock);
 
-          rpmsg_socket_unlock(&conn->sendlock);
+              rpmsg_socket_lock(&conn->recvlock);
 
-          rpmsg_socket_lock(&conn->recvlock);
+              if (!circbuf_is_empty(&conn->recvbuf))
+                {
+                  eventset |= (fds->events & POLLIN);
+                }
 
-          if (!circbuf_is_empty(&conn->recvbuf))
-            {
-              eventset |= (fds->events & POLLIN);
+              rpmsg_socket_unlock(&conn->recvlock);
             }
-
-          rpmsg_socket_unlock(&conn->recvlock);
         }
       else if (!_SS_ISCONNECTED(conn->sconn.s_flags) &&
                _SS_ISNONBLOCK(conn->sconn.s_flags))
@@ -891,8 +892,7 @@ static int rpmsg_socket_poll(FAR struct socket *psock,
         }
       else
         {
-          ret = -EPERM;
-          goto errout;
+          eventset |= POLLERR;
         }
 
       if (eventset)