[forgot to reply all]

Am 2018-07-10 06:38, schrieb Richard Cochran:
On Thu, Jul 05, 2018 at 09:46:26AM +0200, Michael Walle wrote:

@@ -193,6 +193,8 @@ static int suffix_post_recv(struct ptp_message *msg, int len)
        if (!ptr)
                return 0;

+       msg_tlv_recycle(msg);
+

Although this fixes the issue, still it is not symmetric.  The TLV
list is built during suffix_post_recv(), and so it should be taken
down during suffix_pre_send().

Oh, thought this was a typo in your previous mail. Forgot that the fields are converted within the message buffer and the tlv_extras can be removed after they were converted to network byte order. Will be fixed in the next version.


@@ -561,18 +575,13 @@ void msg_print(struct ptp_message *m, FILE *fp)

 void msg_put(struct ptp_message *m)
 {
-       struct tlv_extra *extra;
-
        m->refcnt--;
        if (m->refcnt) {
                return;
        }
        pool_stats.count++;
        pool_debug("recycle", m);
-       while ((extra = TAILQ_FIRST(&m->tlv_list)) != NULL) {
-               TAILQ_REMOVE(&m->tlv_list, extra, list);
-               tlv_extra_recycle(extra);
-       }
+       msg_tlv_recycle(m);

The re-factoring is okay, but...

        TAILQ_INSERT_HEAD(&msg_pool, m, list);
 }

diff --git a/msg.h b/msg.h
index 58a916c..6a3509b 100644
--- a/msg.h
+++ b/msg.h
@@ -280,6 +280,13 @@ struct tlv_extra *msg_tlv_append(struct ptp_message *msg, int length); void msg_tlv_attach(struct ptp_message *msg, struct tlv_extra *extra);

 /**
+ * Drop all TLVs of a message.
+ *
+ * @param msg     A message obtained using msg_allocate().
+ */
+void msg_tlv_recycle(struct ptp_message *msg);

No need for a global function.  The only callers are in msg.c, and so
the helper function needs the 'static' keyword

will fix.

-michael

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Linuxptp-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linuxptp-devel

Reply via email to