Linux kernel -stable discussions
 help / color / mirror / Atom feed
* [PATCH] socket: don't clear SOCK_TSTAMP_NEW when SO_TIMESTAMPNS is disabled
@ 2020-10-27 17:15 Christian Eggers
  2020-10-29 11:04 ` Greg KH
  0 siblings, 1 reply; 3+ messages in thread
From: Christian Eggers @ 2020-10-27 17:15 UTC (permalink / raw)
  To: stable; +Cc: Christian Eggers, Willem de Bruijn, Deepa Dinamani

[ 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


 net/core/sock.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/net/core/sock.c b/net/core/sock.c
index 9a186d2ad36d..1eda7337b881 100644
--- a/net/core/sock.c
+++ b/net/core/sock.c
@@ -923,7 +923,6 @@ int sock_setsockopt(struct socket *sock, int level, int optname,
 		} else {
 			sock_reset_flag(sk, SOCK_RCVTSTAMP);
 			sock_reset_flag(sk, SOCK_RCVTSTAMPNS);
-			sock_reset_flag(sk, SOCK_TSTAMP_NEW);
 		}
 		break;
 
-- 
Christian Eggers
Embedded software developer

Arnold & Richter Cine Technik GmbH & Co. Betriebs KG
Sitz: Muenchen - Registergericht: Amtsgericht Muenchen - Handelsregisternummer: HRA 57918
Persoenlich haftender Gesellschafter: Arnold & Richter Cine Technik GmbH
Sitz: Muenchen - Registergericht: Amtsgericht Muenchen - Handelsregisternummer: HRB 54477
Geschaeftsfuehrer: Dr. Michael Neuhaeuser; Stephan Schenk; Walter Trauninger; Markus Zeiler


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] socket: don't clear SOCK_TSTAMP_NEW when SO_TIMESTAMPNS is disabled
  2020-10-27 17:15 [PATCH] socket: don't clear SOCK_TSTAMP_NEW when SO_TIMESTAMPNS is disabled Christian Eggers
@ 2020-10-29 11:04 ` Greg KH
  2020-10-29 11:07   ` Christian Eggers
  0 siblings, 1 reply; 3+ messages in thread
From: Greg KH @ 2020-10-29 11:04 UTC (permalink / raw)
  To: Christian Eggers; +Cc: stable, Willem de Bruijn, Deepa Dinamani

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

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] socket: don't clear SOCK_TSTAMP_NEW when SO_TIMESTAMPNS is disabled
  2020-10-29 11:04 ` Greg KH
@ 2020-10-29 11:07   ` Christian Eggers
  0 siblings, 0 replies; 3+ messages in thread
From: Christian Eggers @ 2020-10-29 11:07 UTC (permalink / raw)
  To: Greg KH; +Cc: stable, Willem de Bruijn, Deepa Dinamani

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





^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2020-10-29 11:07 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-10-27 17:15 [PATCH] socket: don't clear SOCK_TSTAMP_NEW when SO_TIMESTAMPNS is disabled Christian Eggers
2020-10-29 11:04 ` Greg KH
2020-10-29 11:07   ` Christian Eggers

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox