From 40f7a9e31999d6271fa54ea5fe9e841059ca5ac1 Mon Sep 17 00:00:00 2001 From: Naman Jain Date: Mon, 31 Aug 2026 08:25:28 +0000 Subject: [PATCH] x86/init: Initialize wall clock in get_rtc_noop() get_rtc_noop() is used when an RTC is unavailable, but leaves its output argument untouched. When CONFIG_INIT_STACK_ALL_ZERO is not enabled, timekeeping_init() may therefore receive a nonzero invalid persistent clock value and warn: "Persistent clock returned invalid value" Initialize the output to zero, the documented representation of an unsupported persistent clock. Fixes: c311ed6183f4 ("x86/init: Allow DT configured systems to disable RTC at boot time") Cc: stable@vger.kernel.org Reviewed-by: Thomas Gleixner Reviewed-by: Roman Kisel Reviewed-by: Dexuan Cui Reviewed-by: Hardik Garg Signed-off-by: Naman Jain Link: https://lore.kernel.org/all/20260831082528.1623843-1-namjain@linux.microsoft.com/ Reviewed, but not picked in mainline at the time of backporting. Signed-off-by: Naman Jain --- arch/x86/kernel/x86_init.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/x86/kernel/x86_init.c b/arch/x86/kernel/x86_init.c index a25fd72828117..f6f2923676510 100644 --- a/arch/x86/kernel/x86_init.c +++ b/arch/x86/kernel/x86_init.c @@ -37,7 +37,7 @@ static void iommu_shutdown_noop(void) { } bool __init bool_x86_init_noop(void) { return false; } void x86_op_int_noop(int cpu) { } int set_rtc_noop(const struct timespec64 *now) { return -EINVAL; } -void get_rtc_noop(struct timespec64 *now) { } +void get_rtc_noop(struct timespec64 *now) { *now = (struct timespec64){0}; } static __initconst const struct of_device_id of_cmos_match[] = { { .compatible = "motorola,mc146818" },