linux/kernel/time
Zhan Xusheng fdd6553e1e time/jiffies: Saturate in mult_hz() instead of wrapping
Return ULONG_MAX for values that don't fit an unsigned long.
proc_int_u2k_conv_uop() now correctly rejects a result above INT_MAX.

This is the erroneous behaviour that is being fixed. The input has to
exceed ULONG_MAX / HZ for the product to wrap, so the value below is
specific to CONFIG_HZ=1000:

  # echo 18446744073709552 > /proc/sys/net/ipv4/tcp_keepalive_time
  # cat /proc/sys/net/ipv4/tcp_keepalive_time
  0

That value is now rejected with an error.

The original bound ("*u_ptr > INT_MAX / HZ") was removed in commit
2dc164a48e ("sysctl: Create converter functions with two new macros").

Fixes: 2dc164a48e ("sysctl: Create converter functions with two new macros")
Cc: stable@vger.kernel.org
Signed-off-by: Zhan Xusheng <zhanxusheng@xiaomi.com>
Signed-off-by: Joel Granados <joel.granados@kernel.org>
2026-09-29 10:00:40 +02:00
..
.kunitconfig
alarmtimer.c
clockevents.c tick/broadcast: Plug clockevents replacement race 2026-09-07 11:10:20 +02:00
clocksource-wdtest.c
clocksource.c
hrtimer.c hrtimer: Use hard expiry when updating timers on the same base 2026-09-11 10:15:42 +02:00
itimer.c
jiffies.c time/jiffies: Saturate in mult_hz() instead of wrapping 2026-09-29 10:00:40 +02:00
Kconfig
Makefile
namespace_internal.h
namespace_vdso.c
namespace.c
ntp_internal.h
ntp.c
posix-clock.c
posix-cpu-timers.c posix-cpu-timers: Prevent freeing a timer which is queued on the expiry list 2026-09-19 22:56:22 +02:00
posix-stubs.c
posix-timers.c
posix-timers.h
sched_clock.c
sleep_timeout.c
test_udelay.c
tick-broadcast-hrtimer.c
tick-broadcast.c tick/broadcast: Plug clockevents replacement race 2026-09-07 11:10:20 +02:00
tick-common.c
tick-internal.h tick/broadcast: Plug clockevents replacement race 2026-09-07 11:10:20 +02:00
tick-legacy.c
tick-oneshot.c
tick-sched.c
tick-sched.h
time_test.c
time.c VDSO updates: 2026-08-18 16:56:25 -07:00
timeconst.bc
timeconv.c
timecounter.c
timekeeping_debug.c
timekeeping_internal.h
timekeeping.c
timekeeping.h
timer_list.c
timer_migration.c
timer_migration.h
timer.c
vsyscall.c