mirror of
https://github.com/torvalds/linux.git
synced 2026-10-16 04:39:02 +02:00
This partially reverts commit 80fa614e2f ("selftests: timers: Remove
local NSEC_PER_SEC and USEC_PER_SEC defines").
The original commit removed local definitions of NSEC_PER_SEC and
USEC_PER_SEC in favor of including <include/vdso/time64.h>. However,
NSEC_PER_SEC in vdso/time64.h is defined as 1000000000L, which is
32-bit on 32-bit architectures. This causes integer overflow warnings
in several timer tests when doing arithmetic like NSEC_PER_SEC * 10 on
32-bit systems.
To fix this, restore the local definitions of NSEC_PER_SEC and
USEC_PER_SEC in the test files, but use "LL" suffix consistently
(1000000000LL and 1000000LL) to ensure 64-bit arithmetic and avoid
overflows.
We keep the cleanup from the original commit that renamed plural
definitions (NSECS_PER_SEC/USECS_PER_SEC) to singular ones in
posix_timers.c, but we now define them locally there as well.
This also removes the dependency of the selftests on the internal
kernel header <include/vdso/time64.h>.
Signed-off-by: Wake Liu <wakel@google.com>
Signed-off-by: Thomas Gleixner <tglx@kernel.org>
Acked-by: John Stultz <jstultz@google.com>
Link: https://patch.msgid.link/20260610014721.718362-1-wakel@google.com
25 lines
796 B
Makefile
25 lines
796 B
Makefile
# SPDX-License-Identifier: GPL-2.0
|
|
CFLAGS += -O3 -Wl,-no-as-needed -Wall
|
|
LDLIBS += -lrt -lpthread -lm
|
|
|
|
# these are all "safe" tests that don't modify
|
|
# system time or require escalated privileges
|
|
TEST_GEN_PROGS = posix_timers nanosleep nsleep-lat set-timer-lat mqueue-lat \
|
|
inconsistency-check raw_skew threadtest rtcpie
|
|
|
|
DESTRUCTIVE_TESTS = alarmtimer-suspend valid-adjtimex adjtick change_skew \
|
|
skew_consistency clocksource-switch freq-step leap-a-day \
|
|
leapcrash set-tai set-2038 set-tz
|
|
|
|
TEST_GEN_PROGS_EXTENDED = $(DESTRUCTIVE_TESTS)
|
|
|
|
TEST_FILES := settings
|
|
|
|
include ../lib.mk
|
|
|
|
# these tests require escalated privileges
|
|
# and may modify the system time or trigger
|
|
# other behavior like suspend
|
|
run_destructive_tests: run_tests
|
|
$(call RUN_TESTS, $(DESTRUCTIVE_TESTS))
|