When ptp4l was configured to use SW timestamping, but the interface
supported also HW timestamping, ptp4l detected a change of the PHC on
start, switched to it from the system clock, and tried to control the
PHC using SW timestamps.

Don't switch the PHC if the current PHC index is -1, which is expected
with SW timestamping and in the free-running mode.

Fixes: afeabf3c90ed ("ptp4l: add VLAN over bond support")
Signed-off-by: Miroslav Lichvar <mlich...@redhat.com>
---
 port.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/port.c b/port.c
index 3453716..9746df8 100644
--- a/port.c
+++ b/port.c
@@ -2765,6 +2765,7 @@ static void port_change_phc(struct port *p)
        /* Try to switch only if the interface is up, it has HW time stamping
           using a non-vclock PHC, and the PHC actually changed. */
        if (!(p->link_status & LINK_UP) ||
+           p->phc_index < 0 ||
            !interface_tsinfo_valid(p->iface) ||
            interface_get_vclock(p->iface) >= 0 ||
            interface_phc_index(p->iface) < 0 ||
-- 
2.39.2



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

Reply via email to