* [PATCH] x86/init: Initialize wall clock in get_rtc_noop()
@ 2026-08-31 8:25 Naman Jain
2026-09-09 18:42 ` Dexuan Cui
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Naman Jain @ 2026-08-31 8:25 UTC (permalink / raw)
To: tglx, mingo, bp, dave.hansen, x86
Cc: hpa, decui, namjain, yunhong.jiang, ricardo.neri-calderon,
rahul.tanwar, linux-kernel, linux-hyperv, stable
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
Signed-off-by: Naman Jain <namjain@linux.microsoft.com>
---
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 252c5827d0634..3b9b41820c84c 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" },
--
2.43.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* RE: [PATCH] x86/init: Initialize wall clock in get_rtc_noop()
2026-08-31 8:25 [PATCH] x86/init: Initialize wall clock in get_rtc_noop() Naman Jain
@ 2026-09-09 18:42 ` Dexuan Cui
2026-09-11 4:23 ` Hardik Garg
2026-09-12 3:35 ` Roman Kisel
2 siblings, 0 replies; 4+ messages in thread
From: Dexuan Cui @ 2026-09-09 18:42 UTC (permalink / raw)
To: Naman Jain, tglx@kernel.org, mingo@redhat.com, bp@alien8.de,
dave.hansen@linux.intel.com, x86@kernel.org
Cc: hpa@zytor.com, yunhong.jiang@linux.intel.com,
ricardo.neri-calderon@linux.intel.com,
rahul.tanwar@linux.intel.com, linux-kernel@vger.kernel.org,
linux-hyperv@vger.kernel.org, stable@vger.kernel.org
> From: Naman Jain <namjain@linux.microsoft.com>
> Sent: Monday, August 31, 2026 1:25 AM
LGTM.
Reviewed-by: Dexuan Cui <decui@microsoft.com>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] x86/init: Initialize wall clock in get_rtc_noop()
2026-08-31 8:25 [PATCH] x86/init: Initialize wall clock in get_rtc_noop() Naman Jain
2026-09-09 18:42 ` Dexuan Cui
@ 2026-09-11 4:23 ` Hardik Garg
2026-09-12 3:35 ` Roman Kisel
2 siblings, 0 replies; 4+ messages in thread
From: Hardik Garg @ 2026-09-11 4:23 UTC (permalink / raw)
To: namjain
Cc: bp, dave.hansen, decui, hpa, linux-hyperv, linux-kernel, mingo,
rahul.tanwar, ricardo.neri-calderon, stable, tglx, x86,
yunhong.jiang
Reviewed-by: Hardik Garg <hargar@linux.microsoft.com>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] x86/init: Initialize wall clock in get_rtc_noop()
2026-08-31 8:25 [PATCH] x86/init: Initialize wall clock in get_rtc_noop() Naman Jain
2026-09-09 18:42 ` Dexuan Cui
2026-09-11 4:23 ` Hardik Garg
@ 2026-09-12 3:35 ` Roman Kisel
2 siblings, 0 replies; 4+ messages in thread
From: Roman Kisel @ 2026-09-12 3:35 UTC (permalink / raw)
To: Naman Jain
Cc: glx, mingo, bp, dave.hansen, x86, hpa, decui, yunhong.jiang,
ricardo.neri-calderon, rahul.tanwar, linux-kernel, linux-hyperv,
stable
On Mon, Aug 31, 2026 at 08:25:28AM +0000, Naman Jain wrote:
> 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
> Signed-off-by: Naman Jain <namjain@linux.microsoft.com>
> ---
> 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 252c5827d0634..3b9b41820c84c 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}; }
Hi Naman,
Could be
*now = (struct timespec64){};
to save a byte :)
LGTM.
Reviewed-by: Roman Kisel <vdso@mailbox.org>
>
> static __initconst const struct of_device_id of_cmos_match[] = {
> { .compatible = "motorola,mc146818" },
> --
> 2.43.0
>
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-09-12 3:36 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-31 8:25 [PATCH] x86/init: Initialize wall clock in get_rtc_noop() Naman Jain
2026-09-09 18:42 ` Dexuan Cui
2026-09-11 4:23 ` Hardik Garg
2026-09-12 3:35 ` Roman Kisel
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox