|
Revision tags: v6.15, v6.15-rc7, v6.15-rc6, v6.15-rc5, v6.15-rc4, v6.15-rc3, v6.15-rc2, v6.15-rc1, v6.14, v6.14-rc7, v6.14-rc6, v6.14-rc5, v6.14-rc4, v6.14-rc3, v6.14-rc2 |
|
| #
f66b0acf |
| 05-Feb-2025 |
Nam Cao <[email protected]> |
time: Switch to hrtimer_setup()
hrtimer_setup() takes the callback function pointer as argument and initializes the timer completely.
Replace hrtimer_init() and the open coded initialization of hrt
time: Switch to hrtimer_setup()
hrtimer_setup() takes the callback function pointer as argument and initializes the timer completely.
Replace hrtimer_init() and the open coded initialization of hrtimer::function with the new setup mechanism.
Signed-off-by: Nam Cao <[email protected]> Signed-off-by: Thomas Gleixner <[email protected]> Link: https://lore.kernel.org/all/170bb691a0d59917c8268a98c80b607128fc9f7f.1738746821.git.namcao@linutronix.de
show more ...
|
|
Revision tags: v6.14-rc1, v6.13, v6.13-rc7, v6.13-rc6, v6.13-rc5, v6.13-rc4, v6.13-rc3, v6.13-rc2, v6.13-rc1 |
|
| #
f5807b06 |
| 25-Nov-2024 |
Marcelo Dalmas <[email protected]> |
ntp: Remove invalid cast in time offset math
Due to an unsigned cast, adjtimex() returns the wrong offest when using ADJ_MICRO and the offset is negative. In this case a small negative offset return
ntp: Remove invalid cast in time offset math
Due to an unsigned cast, adjtimex() returns the wrong offest when using ADJ_MICRO and the offset is negative. In this case a small negative offset returns approximately 4.29 seconds (~ 2^32/1000 milliseconds) due to the unsigned cast of the negative offset.
This cast was added when the kernel internal struct timex was changed to use type long long for the time offset value to address the problem of a 64bit/32bit division on 32bit systems.
The correct cast would have been (s32), which is correct as time_offset can only be in the range of [INT_MIN..INT_MAX] because the shift constant used for calculating it is 32. But that's non-obvious.
Remove the cast and use div_s64() to cure the issue.
[ tglx: Fix white space damage, use div_s64() and amend the change log ]
Fixes: ead25417f82e ("timex: use __kernel_timex internally") Signed-off-by: Marcelo Dalmas <[email protected]> Signed-off-by: Thomas Gleixner <[email protected]> Cc: [email protected] Link: https://lore.kernel.org/all/SJ0P101MB03687BF7D5A10FD3C49C51E5F42E2@SJ0P101MB0368.NAMP101.PROD.OUTLOOK.COM
show more ...
|
|
Revision tags: v6.12, v6.12-rc7, v6.12-rc6, v6.12-rc5, v6.12-rc4, v6.12-rc3, v6.12-rc2, v6.12-rc1, v6.11 |
|
| #
6fadb4a6 |
| 11-Sep-2024 |
Thomas Gleixner <[email protected]> |
ntp: Move pps monitors into ntp_data
Finalize the conversion from static variables to struct based data.
No functional change.
Signed-off-by: Thomas Gleixner <[email protected]> Signed-off-by: An
ntp: Move pps monitors into ntp_data
Finalize the conversion from static variables to struct based data.
No functional change.
Signed-off-by: Thomas Gleixner <[email protected]> Signed-off-by: Anna-Maria Behnsen <[email protected]> Signed-off-by: Thomas Gleixner <[email protected]> Acked-by: John Stultz <[email protected]> Link: https://lore.kernel.org/all/20240911-devel-anna-maria-b4-timers-ptp-ntp-v1-21-2d52f4e13476@linutronix.de
show more ...
|
| #
12850b46 |
| 11-Sep-2024 |
Thomas Gleixner <[email protected]> |
ntp: Move pps_freq/stabil into ntp_data
Continue the conversion from static variables to struct based data.
No functional change.
Signed-off-by: Thomas Gleixner <[email protected]> Signed-off-by:
ntp: Move pps_freq/stabil into ntp_data
Continue the conversion from static variables to struct based data.
No functional change.
Signed-off-by: Thomas Gleixner <[email protected]> Signed-off-by: Anna-Maria Behnsen <[email protected]> Signed-off-by: Thomas Gleixner <[email protected]> Acked-by: John Stultz <[email protected]> Link: https://lore.kernel.org/all/20240911-devel-anna-maria-b4-timers-ptp-ntp-v1-20-2d52f4e13476@linutronix.de
show more ...
|
| #
b1c89a76 |
| 11-Sep-2024 |
Thomas Gleixner <[email protected]> |
ntp: Move pps_shift/intcnt into ntp_data
Continue the conversion from static variables to struct based data.
No functional change.
Signed-off-by: Thomas Gleixner <[email protected]> Signed-off-by
ntp: Move pps_shift/intcnt into ntp_data
Continue the conversion from static variables to struct based data.
No functional change.
Signed-off-by: Thomas Gleixner <[email protected]> Signed-off-by: Anna-Maria Behnsen <[email protected]> Signed-off-by: Thomas Gleixner <[email protected]> Acked-by: John Stultz <[email protected]> Link: https://lore.kernel.org/all/20240911-devel-anna-maria-b4-timers-ptp-ntp-v1-19-2d52f4e13476@linutronix.de
show more ...
|
| #
db45e9bc |
| 11-Sep-2024 |
Thomas Gleixner <[email protected]> |
ntp: Move pps_fbase into ntp_data
Continue the conversion from static variables to struct based data.
No functional change.
Signed-off-by: Thomas Gleixner <[email protected]> Signed-off-by: Anna-
ntp: Move pps_fbase into ntp_data
Continue the conversion from static variables to struct based data.
No functional change.
Signed-off-by: Thomas Gleixner <[email protected]> Signed-off-by: Anna-Maria Behnsen <[email protected]> Signed-off-by: Thomas Gleixner <[email protected]> Acked-by: John Stultz <[email protected]> Link: https://lore.kernel.org/all/20240911-devel-anna-maria-b4-timers-ptp-ntp-v1-18-2d52f4e13476@linutronix.de
show more ...
|
| #
9d7130df |
| 11-Sep-2024 |
Thomas Gleixner <[email protected]> |
ntp: Move pps_jitter into ntp_data
Continue the conversion from static variables to struct based data.
No functional change.
Signed-off-by: Thomas Gleixner <[email protected]> Signed-off-by: Anna
ntp: Move pps_jitter into ntp_data
Continue the conversion from static variables to struct based data.
No functional change.
Signed-off-by: Thomas Gleixner <[email protected]> Signed-off-by: Anna-Maria Behnsen <[email protected]> Signed-off-by: Thomas Gleixner <[email protected]> Acked-by: John Stultz <[email protected]> Link: https://lore.kernel.org/all/20240911-devel-anna-maria-b4-timers-ptp-ntp-v1-17-2d52f4e13476@linutronix.de
show more ...
|
| #
5cc953b8 |
| 11-Sep-2024 |
Thomas Gleixner <[email protected]> |
ntp: Move pps_ft into ntp_data
Continue the conversion from static variables to struct based data.
No functional change.
Signed-off-by: Thomas Gleixner <[email protected]> Signed-off-by: Anna-Mar
ntp: Move pps_ft into ntp_data
Continue the conversion from static variables to struct based data.
No functional change.
Signed-off-by: Thomas Gleixner <[email protected]> Signed-off-by: Anna-Maria Behnsen <[email protected]> Signed-off-by: Thomas Gleixner <[email protected]> Acked-by: John Stultz <[email protected]> Link: https://lore.kernel.org/all/20240911-devel-anna-maria-b4-timers-ptp-ntp-v1-16-2d52f4e13476@linutronix.de
show more ...
|
| #
931a177f |
| 11-Sep-2024 |
Thomas Gleixner <[email protected]> |
ntp: Move pps_valid into ntp_data
Continue the conversion from static variables to struct based data.
No functional change.
Signed-off-by: Thomas Gleixner <[email protected]> Signed-off-by: Anna-
ntp: Move pps_valid into ntp_data
Continue the conversion from static variables to struct based data.
No functional change.
Signed-off-by: Thomas Gleixner <[email protected]> Signed-off-by: Anna-Maria Behnsen <[email protected]> Signed-off-by: Thomas Gleixner <[email protected]> Acked-by: John Stultz <[email protected]> Link: https://lore.kernel.org/all/20240911-devel-anna-maria-b4-timers-ptp-ntp-v1-15-2d52f4e13476@linutronix.de
show more ...
|
| #
75d956b9 |
| 11-Sep-2024 |
Thomas Gleixner <[email protected]> |
ntp: Move ntp_next_leap_sec into ntp_data
Continue the conversion from static variables to struct based data.
No functional change.
Signed-off-by: Thomas Gleixner <[email protected]> Signed-off-b
ntp: Move ntp_next_leap_sec into ntp_data
Continue the conversion from static variables to struct based data.
No functional change.
Signed-off-by: Thomas Gleixner <[email protected]> Signed-off-by: Anna-Maria Behnsen <[email protected]> Signed-off-by: Thomas Gleixner <[email protected]> Acked-by: John Stultz <[email protected]> Link: https://lore.kernel.org/all/20240911-devel-anna-maria-b4-timers-ptp-ntp-v1-14-2d52f4e13476@linutronix.de
show more ...
|
| #
bb6400a2 |
| 11-Sep-2024 |
Thomas Gleixner <[email protected]> |
ntp: Move time_adj/ntp_tick_adj into ntp_data
Continue the conversion from static variables to struct based data.
No functional change.
Signed-off-by: Thomas Gleixner <[email protected]> Signed-o
ntp: Move time_adj/ntp_tick_adj into ntp_data
Continue the conversion from static variables to struct based data.
No functional change.
Signed-off-by: Thomas Gleixner <[email protected]> Signed-off-by: Anna-Maria Behnsen <[email protected]> Signed-off-by: Thomas Gleixner <[email protected]> Acked-by: John Stultz <[email protected]> Link: https://lore.kernel.org/all/20240911-devel-anna-maria-b4-timers-ptp-ntp-v1-13-2d52f4e13476@linutronix.de
show more ...
|
| #
161b8ec2 |
| 11-Sep-2024 |
Thomas Gleixner <[email protected]> |
ntp: Move time_freq/reftime into ntp_data
Continue the conversion from static variables to struct based data.
No functional change.
Signed-off-by: Thomas Gleixner <[email protected]> Signed-off-b
ntp: Move time_freq/reftime into ntp_data
Continue the conversion from static variables to struct based data.
No functional change.
Signed-off-by: Thomas Gleixner <[email protected]> Signed-off-by: Anna-Maria Behnsen <[email protected]> Signed-off-by: Thomas Gleixner <[email protected]> Acked-by: John Stultz <[email protected]> Link: https://lore.kernel.org/all/20240911-devel-anna-maria-b4-timers-ptp-ntp-v1-12-2d52f4e13476@linutronix.de
show more ...
|
| #
7891cf29 |
| 11-Sep-2024 |
Thomas Gleixner <[email protected]> |
ntp: Move time_max/esterror into ntp_data
Continue the conversion from static variables to struct based data.
No functional change.
Signed-off-by: Thomas Gleixner <[email protected]> Signed-off-b
ntp: Move time_max/esterror into ntp_data
Continue the conversion from static variables to struct based data.
No functional change.
Signed-off-by: Thomas Gleixner <[email protected]> Signed-off-by: Anna-Maria Behnsen <[email protected]> Signed-off-by: Thomas Gleixner <[email protected]> Acked-by: John Stultz <[email protected]> Link: https://lore.kernel.org/all/20240911-devel-anna-maria-b4-timers-ptp-ntp-v1-11-2d52f4e13476@linutronix.de
show more ...
|
| #
d5143554 |
| 11-Sep-2024 |
Thomas Gleixner <[email protected]> |
ntp: Move time_offset/constant into ntp_data
Continue the conversion from static variables to struct based data.
No functional change.
Signed-off-by: Thomas Gleixner <[email protected]> Signed-of
ntp: Move time_offset/constant into ntp_data
Continue the conversion from static variables to struct based data.
No functional change.
Signed-off-by: Thomas Gleixner <[email protected]> Signed-off-by: Anna-Maria Behnsen <[email protected]> Signed-off-by: Thomas Gleixner <[email protected]> Acked-by: John Stultz <[email protected]> Link: https://lore.kernel.org/all/20240911-devel-anna-maria-b4-timers-ptp-ntp-v1-10-2d52f4e13476@linutronix.de
show more ...
|
| #
bee18a23 |
| 11-Sep-2024 |
Thomas Gleixner <[email protected]> |
ntp: Move tick_stat* into ntp_data
Continue the conversion from static variables to struct based data.
No functional change.
Signed-off-by: Thomas Gleixner <[email protected]> Signed-off-by: Anna
ntp: Move tick_stat* into ntp_data
Continue the conversion from static variables to struct based data.
No functional change.
Signed-off-by: Thomas Gleixner <[email protected]> Signed-off-by: Anna-Maria Behnsen <[email protected]> Signed-off-by: Thomas Gleixner <[email protected]> Acked-by: John Stultz <[email protected]> Link: https://lore.kernel.org/all/20240911-devel-anna-maria-b4-timers-ptp-ntp-v1-9-2d52f4e13476@linutronix.de
show more ...
|
| #
ec93ec22 |
| 11-Sep-2024 |
Thomas Gleixner <[email protected]> |
ntp: Move tick_length* into ntp_data
Continue the conversion from static variables to struct based data.
No functional change.
Signed-off-by: Thomas Gleixner <[email protected]> Signed-off-by: An
ntp: Move tick_length* into ntp_data
Continue the conversion from static variables to struct based data.
No functional change.
Signed-off-by: Thomas Gleixner <[email protected]> Signed-off-by: Anna-Maria Behnsen <[email protected]> Signed-off-by: Thomas Gleixner <[email protected]> Acked-by: John Stultz <[email protected]> Link: https://lore.kernel.org/all/20240911-devel-anna-maria-b4-timers-ptp-ntp-v1-8-2d52f4e13476@linutronix.de
show more ...
|
| #
68f66f97 |
| 11-Sep-2024 |
Thomas Gleixner <[email protected]> |
ntp: Introduce struct ntp_data
All NTP data is held in static variables. That prevents the NTP code from being reuasble for non-system time timekeepers, e.g. per PTP clock timekeeping.
Introduce st
ntp: Introduce struct ntp_data
All NTP data is held in static variables. That prevents the NTP code from being reuasble for non-system time timekeepers, e.g. per PTP clock timekeeping.
Introduce struct ntp_data and move tick_usec into it for a start.
No functional change.
Signed-off-by: Thomas Gleixner <[email protected]> Signed-off-by: Anna-Maria Behnsen <[email protected]> Signed-off-by: Thomas Gleixner <[email protected]> Acked-by: John Stultz <[email protected]> Link: https://lore.kernel.org/all/20240911-devel-anna-maria-b4-timers-ptp-ntp-v1-7-2d52f4e13476@linutronix.de
show more ...
|
| #
136bccbc |
| 11-Sep-2024 |
Thomas Gleixner <[email protected]> |
ntp: Read reference time only once
The reference time is required twice in ntp_update_offset(). It will not change in the meantime as the calling code holds the timekeeper lock. Read it only once an
ntp: Read reference time only once
The reference time is required twice in ntp_update_offset(). It will not change in the meantime as the calling code holds the timekeeper lock. Read it only once and store it into a local variable.
Signed-off-by: Thomas Gleixner <[email protected]> Signed-off-by: Anna-Maria Behnsen <[email protected]> Signed-off-by: Thomas Gleixner <[email protected]> Acked-by: John Stultz <[email protected]> Link: https://lore.kernel.org/all/20240911-devel-anna-maria-b4-timers-ptp-ntp-v1-6-2d52f4e13476@linutronix.de
show more ...
|
| #
48c3c65f |
| 11-Sep-2024 |
Thomas Gleixner <[email protected]> |
ntp: Convert functions with only two states to bool
is_error_status() and ntp_synced() return whether a state is set or not. Both functions use unsigned int for it even if it would be a perfect job
ntp: Convert functions with only two states to bool
is_error_status() and ntp_synced() return whether a state is set or not. Both functions use unsigned int for it even if it would be a perfect job for a bool.
Use bool instead of unsigned int. And while at it, move ntp_synced() function to the place where it is used.
No functional change.
Signed-off-by: Thomas Gleixner <[email protected]> Signed-off-by: Anna-Maria Behnsen <[email protected]> Signed-off-by: Thomas Gleixner <[email protected]> Acked-by: John Stultz <[email protected]> Link: https://lore.kernel.org/all/20240911-devel-anna-maria-b4-timers-ptp-ntp-v1-5-2d52f4e13476@linutronix.de
show more ...
|
| #
38007dc0 |
| 11-Sep-2024 |
Anna-Maria Behnsen <[email protected]> |
ntp: Cleanup formatting of code
Code is partially formatted in a creative way which makes reading harder. Examples are function calls over several lines where the indentation does not start at the s
ntp: Cleanup formatting of code
Code is partially formatted in a creative way which makes reading harder. Examples are function calls over several lines where the indentation does not start at the same height then the open bracket after the function name.
Improve formatting but do not make a functional change.
Signed-off-by: Anna-Maria Behnsen <[email protected]> Signed-off-by: Thomas Gleixner <[email protected]> Acked-by: John Stultz <[email protected]> Link: https://lore.kernel.org/all/20240911-devel-anna-maria-b4-timers-ptp-ntp-v1-4-2d52f4e13476@linutronix.de
show more ...
|
| #
a0581cdb |
| 11-Sep-2024 |
Thomas Gleixner <[email protected]> |
ntp: Clean up comments
Usage of different comment formatting makes fast reading and parsing the code harder. There are several multi-line comments which do not follow the coding style by starting wi
ntp: Clean up comments
Usage of different comment formatting makes fast reading and parsing the code harder. There are several multi-line comments which do not follow the coding style by starting with a line only containing '/*'. There are also comments which do not start with capitals.
Clean up all those comments to be consistent and remove comments which document the obvious.
Signed-off-by: Thomas Gleixner <[email protected]> Signed-off-by: Anna-Maria Behnsen <[email protected]> Signed-off-by: Thomas Gleixner <[email protected]> Acked-by: John Stultz <[email protected]> Link: https://lore.kernel.org/all/20240911-devel-anna-maria-b4-timers-ptp-ntp-v1-3-2d52f4e13476@linutronix.de
show more ...
|
| #
66606a93 |
| 11-Sep-2024 |
Thomas Gleixner <[email protected]> |
ntp: Make tick_usec static
There are no users of tick_usec outside of the NTP core code. Therefore make tick_usec static.
Signed-off-by: Thomas Gleixner <[email protected]> Signed-off-by: Anna-Mar
ntp: Make tick_usec static
There are no users of tick_usec outside of the NTP core code. Therefore make tick_usec static.
Signed-off-by: Thomas Gleixner <[email protected]> Signed-off-by: Anna-Maria Behnsen <[email protected]> Signed-off-by: Thomas Gleixner <[email protected]> Acked-by: John Stultz <[email protected]> Link: https://lore.kernel.org/all/20240911-devel-anna-maria-b4-timers-ptp-ntp-v1-2-2d52f4e13476@linutronix.de
show more ...
|
| #
a849a027 |
| 11-Sep-2024 |
Thomas Gleixner <[email protected]> |
ntp: Remove unused tick_nsec
tick_nsec is only updated in the NTP core, but there are no users.
Remove it.
Signed-off-by: Thomas Gleixner <[email protected]> Signed-off-by: Anna-Maria Behnsen <an
ntp: Remove unused tick_nsec
tick_nsec is only updated in the NTP core, but there are no users.
Remove it.
Signed-off-by: Thomas Gleixner <[email protected]> Signed-off-by: Anna-Maria Behnsen <[email protected]> Signed-off-by: Thomas Gleixner <[email protected]> Acked-by: John Stultz <[email protected]> Link: https://lore.kernel.org/all/20240911-devel-anna-maria-b4-timers-ptp-ntp-v1-1-2d52f4e13476@linutronix.de
show more ...
|
|
Revision tags: v6.11-rc7 |
|
| #
35b603f8 |
| 08-Sep-2024 |
Benjamin ROBIN <[email protected]> |
ntp: Make sure RTC is synchronized when time goes backwards
sync_hw_clock() is normally called every 11 minutes when time is synchronized. This issue is that this periodic timer uses the REALTIME cl
ntp: Make sure RTC is synchronized when time goes backwards
sync_hw_clock() is normally called every 11 minutes when time is synchronized. This issue is that this periodic timer uses the REALTIME clock, so when time moves backwards (the NTP server jumps into the past), the timer expires late.
If the timer expires late, which can be days later, the RTC will no longer be updated, which is an issue if the device is abruptly powered OFF during this period. When the device will restart (when powered ON), it will have the date prior to the ADJ_SETOFFSET call.
A normal NTP server should not jump in the past like that, but it is possible... Another way of reproducing this issue is to use phc2sys to synchronize the REALTIME clock with, for example, an IRIG timecode with the source always starting at the same date (not synchronized).
Also, if the time jump in the future by less than 11 minutes, the RTC may not be updated immediately (minor issue). Consider the following scenario: - Time is synchronized, and sync_hw_clock() was just called (the timer expires in 11 minutes). - A time jump is realized in the future by a couple of minutes. - The time is synchronized again. - Users may expect that RTC to be updated as soon as possible, and not after 11 minutes (for the same reason, if a power loss occurs in this period).
Cancel periodic timer on any time jump (ADJ_SETOFFSET) greater than or equal to 1s. The timer will be relaunched at the end of do_adjtimex() if NTP is still considered synced. Otherwise the timer will be relaunched later when NTP is synced. This way, when the time is synchronized again, the RTC is updated after less than 2 seconds.
Signed-off-by: Benjamin ROBIN <[email protected]> Signed-off-by: Thomas Gleixner <[email protected]> Link: https://lore.kernel.org/all/[email protected]
show more ...
|
|
Revision tags: v6.11-rc6, v6.11-rc5, v6.11-rc4, v6.11-rc3, v6.11-rc2, v6.11-rc1, v6.10, v6.10-rc7, v6.10-rc6, v6.10-rc5, v6.10-rc4, v6.10-rc3, v6.10-rc2, v6.10-rc1 |
|
| #
06c03c8e |
| 17-May-2024 |
Justin Stitt <[email protected]> |
ntp: Safeguard against time_constant overflow
Using syzkaller with the recently reintroduced signed integer overflow sanitizer produces this UBSAN report:
UBSAN: signed-integer-overflow in ../kerne
ntp: Safeguard against time_constant overflow
Using syzkaller with the recently reintroduced signed integer overflow sanitizer produces this UBSAN report:
UBSAN: signed-integer-overflow in ../kernel/time/ntp.c:738:18 9223372036854775806 + 4 cannot be represented in type 'long' Call Trace: handle_overflow+0x171/0x1b0 __do_adjtimex+0x1236/0x1440 do_adjtimex+0x2be/0x740
The user supplied time_constant value is incremented by four and then clamped to the operating range.
Before commit eea83d896e31 ("ntp: NTP4 user space bits update") the user supplied value was sanity checked to be in the operating range. That change removed the sanity check and relied on clamping after incrementing which does not work correctly when the user supplied value is in the overflow zone of the '+ 4' operation.
The operation requires CAP_SYS_TIME and the side effect of the overflow is NTP getting out of sync.
Similar to the fixups for time_maxerror and time_esterror, clamp the user space supplied value to the operating range.
[ tglx: Switch to clamping ]
Fixes: eea83d896e31 ("ntp: NTP4 user space bits update") Signed-off-by: Justin Stitt <[email protected]> Signed-off-by: Thomas Gleixner <[email protected]> Cc: Miroslav Lichvar <[email protected]> Cc: [email protected] Link: https://lore.kernel.org/all/[email protected] Closes: https://github.com/KSPP/linux/issues/352
show more ...
|