linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] ntp: Allow TAI-UTC offset to be set to zero
@ 2019-04-17  8:48 Miroslav Lichvar
  2019-04-17  9:00 ` Ondrej Mosnacek
  2019-05-09  8:52 ` [tip:timers/urgent] " tip-bot for Miroslav Lichvar
  0 siblings, 2 replies; 6+ messages in thread
From: Miroslav Lichvar @ 2019-04-17  8:48 UTC (permalink / raw)
  To: linux-kernel
  Cc: Ondrej Mosnacek, Miroslav Lichvar, Thomas Gleixner, John Stultz,
	Richard Cochran, Prarit Bhargava

The ADJ_TAI adjtimex mode sets the TAI-UTC offset of the system clock.
It is typically set by NTP/PTP implementations and it is automatically
updated by the kernel on leap seconds. The initial value is zero (which
applications may interpret as unknown), but this value cannot be set by
adjtimex. This limitation seems to go back to the original "nanokernel"
implementation by David Mills.

Change the ADJ_TAI check to accept zero as a valid TAI-UTC offset in
order to allow setting it back to the initial value.

Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: John Stultz <john.stultz@linaro.org>
Cc: Richard Cochran <richardcochran@gmail.com>
Cc: Prarit Bhargava <prarit@redhat.com>
Suggested-by: Ondrej Mosnacek <omosnace@redhat.com>
Signed-off-by: Miroslav Lichvar <mlichvar@redhat.com>
---
 kernel/time/ntp.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/time/ntp.c b/kernel/time/ntp.c
index 92a90014a925..f43d47c8c3b6 100644
--- a/kernel/time/ntp.c
+++ b/kernel/time/ntp.c
@@ -690,7 +690,7 @@ static inline void process_adjtimex_modes(const struct __kernel_timex *txc,
 		time_constant = max(time_constant, 0l);
 	}
 
-	if (txc->modes & ADJ_TAI && txc->constant > 0)
+	if (txc->modes & ADJ_TAI && txc->constant >= 0)
 		*time_tai = txc->constant;
 
 	if (txc->modes & ADJ_OFFSET)
-- 
2.17.2


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

* Re: [PATCH] ntp: Allow TAI-UTC offset to be set to zero
  2019-04-17  8:48 [PATCH] ntp: Allow TAI-UTC offset to be set to zero Miroslav Lichvar
@ 2019-04-17  9:00 ` Ondrej Mosnacek
  2019-04-18  8:07   ` Miroslav Lichvar
  2019-05-09  8:52 ` [tip:timers/urgent] " tip-bot for Miroslav Lichvar
  1 sibling, 1 reply; 6+ messages in thread
From: Ondrej Mosnacek @ 2019-04-17  9:00 UTC (permalink / raw)
  To: Miroslav Lichvar
  Cc: Linux kernel mailing list, Thomas Gleixner, John Stultz,
	Richard Cochran, Prarit Bhargava

On Wed, Apr 17, 2019 at 10:48 AM Miroslav Lichvar <mlichvar@redhat.com> wrote:
> The ADJ_TAI adjtimex mode sets the TAI-UTC offset of the system clock.
> It is typically set by NTP/PTP implementations and it is automatically
> updated by the kernel on leap seconds. The initial value is zero (which
> applications may interpret as unknown), but this value cannot be set by
> adjtimex. This limitation seems to go back to the original "nanokernel"
> implementation by David Mills.
>
> Change the ADJ_TAI check to accept zero as a valid TAI-UTC offset in
> order to allow setting it back to the initial value.
>
> Cc: Thomas Gleixner <tglx@linutronix.de>
> Cc: John Stultz <john.stultz@linaro.org>
> Cc: Richard Cochran <richardcochran@gmail.com>
> Cc: Prarit Bhargava <prarit@redhat.com>
> Suggested-by: Ondrej Mosnacek <omosnace@redhat.com>
> Signed-off-by: Miroslav Lichvar <mlichvar@redhat.com>

Thanks for sending the patch! Maybe you (or the committer) could
consider adding:

Fixes: 153b5d054ac2 ("ntp: support for TAI")

so that it gets to the stable kernels as well.

> ---
>  kernel/time/ntp.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/kernel/time/ntp.c b/kernel/time/ntp.c
> index 92a90014a925..f43d47c8c3b6 100644
> --- a/kernel/time/ntp.c
> +++ b/kernel/time/ntp.c
> @@ -690,7 +690,7 @@ static inline void process_adjtimex_modes(const struct __kernel_timex *txc,
>                 time_constant = max(time_constant, 0l);
>         }
>
> -       if (txc->modes & ADJ_TAI && txc->constant > 0)
> +       if (txc->modes & ADJ_TAI && txc->constant >= 0)
>                 *time_tai = txc->constant;
>
>         if (txc->modes & ADJ_OFFSET)
> --
> 2.17.2

-- 
Ondrej Mosnacek <omosnace at redhat dot com>
Software Engineer, Security Technologies
Red Hat, Inc.

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

* Re: [PATCH] ntp: Allow TAI-UTC offset to be set to zero
  2019-04-17  9:00 ` Ondrej Mosnacek
@ 2019-04-18  8:07   ` Miroslav Lichvar
  2019-04-18  9:07     ` Thomas Gleixner
  0 siblings, 1 reply; 6+ messages in thread
From: Miroslav Lichvar @ 2019-04-18  8:07 UTC (permalink / raw)
  To: Ondrej Mosnacek
  Cc: Linux kernel mailing list, Thomas Gleixner, John Stultz,
	Richard Cochran, Prarit Bhargava

On Wed, Apr 17, 2019 at 11:00:23AM +0200, Ondrej Mosnacek wrote:
> On Wed, Apr 17, 2019 at 10:48 AM Miroslav Lichvar <mlichvar@redhat.com> wrote:
> > Change the ADJ_TAI check to accept zero as a valid TAI-UTC offset in
> > order to allow setting it back to the initial value.

> Thanks for sending the patch! Maybe you (or the committer) could
> consider adding:
> 
> Fixes: 153b5d054ac2 ("ntp: support for TAI")

To me the change looks more like an extension of the API, rather than
a bug fix, so I'd leave that up to the committer.

-- 
Miroslav Lichvar

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

* Re: [PATCH] ntp: Allow TAI-UTC offset to be set to zero
  2019-04-18  8:07   ` Miroslav Lichvar
@ 2019-04-18  9:07     ` Thomas Gleixner
  2019-04-18 13:54       ` Ondrej Mosnacek
  0 siblings, 1 reply; 6+ messages in thread
From: Thomas Gleixner @ 2019-04-18  9:07 UTC (permalink / raw)
  To: Miroslav Lichvar
  Cc: Ondrej Mosnacek, Linux kernel mailing list, John Stultz,
	Richard Cochran, Prarit Bhargava

On Thu, 18 Apr 2019, Miroslav Lichvar wrote:
> On Wed, Apr 17, 2019 at 11:00:23AM +0200, Ondrej Mosnacek wrote:
> > On Wed, Apr 17, 2019 at 10:48 AM Miroslav Lichvar <mlichvar@redhat.com> wrote:
> > > Change the ADJ_TAI check to accept zero as a valid TAI-UTC offset in
> > > order to allow setting it back to the initial value.
> 
> > Thanks for sending the patch! Maybe you (or the committer) could
> > consider adding:
> > 
> > Fixes: 153b5d054ac2 ("ntp: support for TAI")
> 
> To me the change looks more like an extension of the API, rather than
> a bug fix, so I'd leave that up to the committer.

I don't see why we need to backport that all the way, but I'm happy to add
the tag if there is some really good reason.

Thanks,

	tglx

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

* Re: [PATCH] ntp: Allow TAI-UTC offset to be set to zero
  2019-04-18  9:07     ` Thomas Gleixner
@ 2019-04-18 13:54       ` Ondrej Mosnacek
  0 siblings, 0 replies; 6+ messages in thread
From: Ondrej Mosnacek @ 2019-04-18 13:54 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: Miroslav Lichvar, Linux kernel mailing list, John Stultz,
	Richard Cochran, Prarit Bhargava

On Thu, Apr 18, 2019 at 11:07 AM Thomas Gleixner <tglx@linutronix.de> wrote:
> On Thu, 18 Apr 2019, Miroslav Lichvar wrote:
> > On Wed, Apr 17, 2019 at 11:00:23AM +0200, Ondrej Mosnacek wrote:
> > > On Wed, Apr 17, 2019 at 10:48 AM Miroslav Lichvar <mlichvar@redhat.com> wrote:
> > > > Change the ADJ_TAI check to accept zero as a valid TAI-UTC offset in
> > > > order to allow setting it back to the initial value.
> >
> > > Thanks for sending the patch! Maybe you (or the committer) could
> > > consider adding:
> > >
> > > Fixes: 153b5d054ac2 ("ntp: support for TAI")
> >
> > To me the change looks more like an extension of the API, rather than
> > a bug fix, so I'd leave that up to the committer.
>
> I don't see why we need to backport that all the way, but I'm happy to add
> the tag if there is some really good reason.

OK, I can live without it, it's just that it kind of breaks the tests
for the recent time auditing patches [1] (I try to reset to previous
values when triggering events). I worked around it for now by
resetting the value to 1 when original value was 0... I don't know if
it can lead to some issues or not, but it would be nice if I could
reset to the actual original value...

[1] https://github.com/linux-audit/audit-testsuite/pull/82/files#diff-555d96083b536100d9b7e3eea56feadbR76

-- 
Ondrej Mosnacek <omosnace at redhat dot com>
Software Engineer, Security Technologies
Red Hat, Inc.

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

* [tip:timers/urgent] ntp: Allow TAI-UTC offset to be set to zero
  2019-04-17  8:48 [PATCH] ntp: Allow TAI-UTC offset to be set to zero Miroslav Lichvar
  2019-04-17  9:00 ` Ondrej Mosnacek
@ 2019-05-09  8:52 ` tip-bot for Miroslav Lichvar
  1 sibling, 0 replies; 6+ messages in thread
From: tip-bot for Miroslav Lichvar @ 2019-05-09  8:52 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: hpa, richardcochran, tglx, john.stultz, mingo, mlichvar, prarit,
	omosnace, linux-kernel

Commit-ID:  fdc6bae940ee9eb869e493990540098b8c0fd6ab
Gitweb:     https://git.kernel.org/tip/fdc6bae940ee9eb869e493990540098b8c0fd6ab
Author:     Miroslav Lichvar <mlichvar@redhat.com>
AuthorDate: Wed, 17 Apr 2019 10:48:33 +0200
Committer:  Thomas Gleixner <tglx@linutronix.de>
CommitDate: Thu, 9 May 2019 10:46:58 +0200

ntp: Allow TAI-UTC offset to be set to zero

The ADJ_TAI adjtimex mode sets the TAI-UTC offset of the system clock.
It is typically set by NTP/PTP implementations and it is automatically
updated by the kernel on leap seconds. The initial value is zero (which
applications may interpret as unknown), but this value cannot be set by
adjtimex. This limitation seems to go back to the original "nanokernel"
implementation by David Mills.

Change the ADJ_TAI check to accept zero as a valid TAI-UTC offset in
order to allow setting it back to the initial value.

Fixes: 153b5d054ac2 ("ntp: support for TAI")
Suggested-by: Ondrej Mosnacek <omosnace@redhat.com>
Signed-off-by: Miroslav Lichvar <mlichvar@redhat.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: John Stultz <john.stultz@linaro.org>
Cc: Richard Cochran <richardcochran@gmail.com>
Cc: Prarit Bhargava <prarit@redhat.com>
Link: https://lkml.kernel.org/r/20190417084833.7401-1-mlichvar@redhat.com

---
 kernel/time/ntp.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/time/ntp.c b/kernel/time/ntp.c
index 92a90014a925..f43d47c8c3b6 100644
--- a/kernel/time/ntp.c
+++ b/kernel/time/ntp.c
@@ -690,7 +690,7 @@ static inline void process_adjtimex_modes(const struct __kernel_timex *txc,
 		time_constant = max(time_constant, 0l);
 	}
 
-	if (txc->modes & ADJ_TAI && txc->constant > 0)
+	if (txc->modes & ADJ_TAI && txc->constant >= 0)
 		*time_tai = txc->constant;
 
 	if (txc->modes & ADJ_OFFSET)

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

end of thread, other threads:[~2019-05-09  8:53 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-04-17  8:48 [PATCH] ntp: Allow TAI-UTC offset to be set to zero Miroslav Lichvar
2019-04-17  9:00 ` Ondrej Mosnacek
2019-04-18  8:07   ` Miroslav Lichvar
2019-04-18  9:07     ` Thomas Gleixner
2019-04-18 13:54       ` Ondrej Mosnacek
2019-05-09  8:52 ` [tip:timers/urgent] " tip-bot for Miroslav Lichvar

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).