Make it possible to set timeout values bigger than 2.147 sec
and print error message in case port_set_sync_rx_tmo() fails.

Signed-off-by: Paweł Modrzejewski <plpmodr...@gmail.com>
---
 port.c | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/port.c b/port.c
index 5803cd3..61d03d4 100644
--- a/port.c
+++ b/port.c
@@ -245,12 +245,9 @@ int set_tmo_log(int fd, unsigned int scale, int 
log_seconds)
                for (i = 1, ns = scale * 500000000ULL; i < log_seconds; i++) {
                        ns >>= 1;
                }
-               tmo.it_value.tv_nsec = ns;
 
-               while (tmo.it_value.tv_nsec >= NS_PER_SEC) {
-                       tmo.it_value.tv_nsec -= NS_PER_SEC;
-                       tmo.it_value.tv_sec++;
-               }
+               tmo.it_value.tv_sec = ns / NS_PER_SEC;
+               tmo.it_value.tv_nsec = ns % NS_PER_SEC;
 
        } else
                tmo.it_value.tv_sec = scale * (1 << log_seconds);
@@ -1354,7 +1351,9 @@ static void port_synchronize(struct port *p,
        enum servo_state state, last_state;
        tmv_t t1, t1c, t2, c1, c2;
 
-       port_set_sync_rx_tmo(p);
+       if (port_set_sync_rx_tmo(p) < 0) {
+               pr_err("Failed to set sync rx timeout timer: %s", 
strerror(errno));
+       }
 
        t1 = timestamp_to_tmv(origin_ts);
        t2 = ingress_ts;
-- 
2.40.0



_______________________________________________
Linuxptp-devel mailing list
Linuxptp-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxptp-devel

Reply via email to