anchao commented on code in PR #17909:
URL: https://github.com/apache/nuttx/pull/17909#discussion_r2706277163


##########
drivers/timers/rpmsg_rtc.c:
##########
@@ -716,39 +714,61 @@ static int rpmsg_rtc_server_ept_cb(FAR struct 
rpmsg_endpoint *ept,
     }
 }
 
-static bool rpmsg_rtc_server_ns_match(FAR struct rpmsg_device *rdev,
-                                      FAR void *priv,
-                                      FAR const char *name,
-                                      uint32_t dest)
-{
-  return !strcmp(name, RPMSG_RTC_EPT_NAME);
-}
-
 static void rpmsg_rtc_server_ept_release(FAR struct rpmsg_endpoint *ept)
 {
   FAR struct rpmsg_rtc_client_s *client = container_of(ept,
                                             struct rpmsg_rtc_client_s, ept);
   FAR struct rpmsg_rtc_server_s *server = ept->priv;
 
   nxmutex_lock(&server->lock);
-  list_delete(&client->node);
+  if (list_in_list(&client->node))
+    {
+      list_delete(&client->node);
+    }
+
   nxmutex_unlock(&server->lock);
   kmm_free(client);
 }
 
-static void rpmsg_rtc_server_ns_bind(FAR struct rpmsg_device *rdev,
-                                     FAR void *priv,
-                                     FAR const char *name,
-                                     uint32_t dest)
+static void rpmsg_rtc_server_sync(FAR struct rpmsg_rtc_server_s *server,
+                                  FAR struct rpmsg_rtc_client_s *client)
+{
+  struct rtc_time rtctime;
+
+  if (server->lower->ops->rdtime(server->lower, &rtctime) >= 0)
+    {
+      struct rpmsg_rtc_set_s msg;
+
+      msg.sec  = timegm((FAR struct tm *)&rtctime);
+      msg.nsec = rtctime.tm_nsec;
+      msg.base_sec = g_basetime.tv_sec;
+      msg.base_nsec = g_basetime.tv_nsec;
+
+      msg.header.command = RPMSG_RTC_SYNC;
+      rpmsg_send(&client->ept, &msg, sizeof(msg));
+    }
+}
+
+static void rpmsg_rtc_server_ns_bound(FAR struct rpmsg_endpoint *ept)
+{
+  FAR struct rpmsg_rtc_client_s *client;
+  FAR struct rpmsg_rtc_server_s *server;
+
+  client = container_of(ept, struct rpmsg_rtc_client_s, ept);
+  server = client->ept.priv;
+
+  nxmutex_lock(&server->lock);
+  list_add_tail(&server->list, &client->node);

Review Comment:
   check node whether in list before add



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to