Just after sending the back port yesterday I discovered that stable patches related to networking should go via netdev. So I additionally posted it there.
regards Christian
On Thursday, 29 October 2020, 12:04:14 CET, Greg KH wrote:
On Tue, Oct 27, 2020 at 06:15:26PM +0100, Christian Eggers wrote:
[ Upstream commit 4e3bbb33e6f36e4b05be1b1b9b02e3dd5aaa3e69 ]
SOCK_TSTAMP_NEW (timespec64 instead of timespec) is also used for hardware time stamps (configured via SO_TIMESTAMPING_NEW).
User space (ptp4l) first configures hardware time stamping via SO_TIMESTAMPING_NEW which sets SOCK_TSTAMP_NEW. In the next step, ptp4l disables SO_TIMESTAMPNS(_NEW) (software time stamps), but this must not switch hardware time stamps back to "32 bit mode".
This problem happens on 32 bit platforms were the libc has already switched to struct timespec64 (from SO_TIMExxx_OLD to SO_TIMExxx_NEW socket options). ptp4l complains with "missing timestamp on transmitted peer delay request" because the wrong format is received (and discarded).
Fixes: 887feae36aee ("socket: Add SO_TIMESTAMP[NS]_NEW") Signed-off-by: Christian Eggers ceggers@arri.de Acked-by: Willem de Bruijn willemb@google.com Acked-by: Deepa Dinamani deepa.kernel@gmail.com
Hi Greg,
I just got your E-mail(s) that this patch has been applied to 5.8 and 5.9. This is a back port for the same problem on 5.4. It does the same as the upstream patch, only the affected code is at another position here. Please decide yourself whether the Acked-by: tags (from the upstream patch) should be kept or removed.
This back port is only required for 5.4, older kernels like 4.19 are not affected.
regards Christian
Now queued up, thanks.
greg k-h