public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] ntp: fix bug in adjtimex reading time offset
@ 2024-11-25 12:16 Dalmas, Marcelo (GE Vernova)
  2024-11-27 14:10 ` Thomas Gleixner
  0 siblings, 1 reply; 7+ messages in thread
From: Dalmas, Marcelo (GE Vernova) @ 2024-11-25 12:16 UTC (permalink / raw)
  To: jstultz@google.com, tglx@linutronix.de, sboyd@kernel.org,
	linux-kernel@vger.kernel.org
  Cc: Dalmas, Marcelo (GE Vernova)

Due to an unsigned cast, adjtimex returns wrong offest when using ADJ_MICRO and the offset is negative.
In this case a small negative offset return approximately 4.29 seconds (~ 2^32/1000 milliseconds).

Signed-off-by: Marcelo Dalmas <marcelo.dalmas@ge.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 b550ebe0f03b..02e7fe6a0afa 100644
--- a/kernel/time/ntp.c
+++ b/kernel/time/ntp.c
@@ -798,7 +798,7 @@ int __do_adjtimex(struct __kernel_timex *txc, const struct timespec64 *ts,

                txc->offset = shift_right(ntpdata->time_offset * NTP_INTERVAL_FREQ, NTP_SCALE_SHIFT);
                if (!(ntpdata->time_status & STA_NANO))
-                       txc->offset = (u32)txc->offset / NSEC_PER_USEC;
+                       txc->offset /= NSEC_PER_USEC;
        }

        result = ntpdata->time_state;
--
2.39.5




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

end of thread, other threads:[~2024-11-28 10:54 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-11-25 12:16 [PATCH] ntp: fix bug in adjtimex reading time offset Dalmas, Marcelo (GE Vernova)
2024-11-27 14:10 ` Thomas Gleixner
2024-11-27 16:05   ` Richard Cochran
2024-11-27 17:35     ` Thomas Gleixner
2024-11-27 17:39       ` Thomas Gleixner
2024-11-28 10:54         ` Thomas Gleixner
2024-11-27 17:33   ` Thomas Gleixner

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