OSDN Git Service

sfc: fix timestamp reconstruction at 16-bit rollover points
authorAlex Maftei (amaftei) <amaftei@solarflare.com>
Wed, 26 Feb 2020 17:33:19 +0000 (17:33 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 27 Feb 2020 20:04:49 +0000 (12:04 -0800)
commit23797b98909f34b75fd130369bde86f760db69d0
tree8ab3f20d8390108d66db979b51aa460bc14aa2b2
parent3f74957fcbeab703297ed0f135430414ed7e0dd0
sfc: fix timestamp reconstruction at 16-bit rollover points

We can't just use the top bits of the last sync event as they could be
off-by-one every 65,536 seconds, giving an error in reconstruction of
65,536 seconds.

This patch uses the difference in the bottom 16 bits (mod 2^16) to
calculate an offset that needs to be applied to the last sync event to
get to the current time.

Signed-off-by: Alexandru-Mihai Maftei <amaftei@solarflare.com>
Acked-by: Martin Habets <mhabets@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/sfc/ptp.c