[tip: timers/urgent] timekeeping: Fix aux clocks sysfs initialization loop bound

tip-bot2 for Haofeng Li posted 1 patch 3 months, 2 weeks ago
kernel/time/timekeeping.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[tip: timers/urgent] timekeeping: Fix aux clocks sysfs initialization loop bound
Posted by tip-bot2 for Haofeng Li 3 months, 2 weeks ago
The following commit has been merged into the timers/urgent branch of tip:

Commit-ID:     39a9ed0fb6dac58547afdf9b6cb032d326a3698f
Gitweb:        https://git.kernel.org/tip/39a9ed0fb6dac58547afdf9b6cb032d326a3698f
Author:        Haofeng Li <lihaofeng@kylinos.cn>
AuthorDate:    Wed, 15 Oct 2025 14:17:53 +08:00
Committer:     Thomas Gleixner <tglx@linutronix.de>
CommitterDate: Mon, 20 Oct 2025 19:56:12 +02:00

timekeeping: Fix aux clocks sysfs initialization loop bound

The loop in tk_aux_sysfs_init() uses `i <= MAX_AUX_CLOCKS` as the
termination condition, which results in 9 iterations (i=0 to 8) when
MAX_AUX_CLOCKS is defined as 8. However, the kernel is designed to support
only up to 8 auxiliary clocks.

This off-by-one error causes the creation of a 9th sysfs entry that exceeds
the intended auxiliary clock range.

Fix the loop bound to use `i < MAX_AUX_CLOCKS` to ensure exactly 8
auxiliary clock entries are created, matching the design specification.

Fixes: 7b95663a3d96 ("timekeeping: Provide interface to control auxiliary clocks")
Signed-off-by: Haofeng Li <lihaofeng@kylinos.cn>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://patch.msgid.link/tencent_2376993D9FC06A3616A4F981B3DE1C599607@qq.com
---
 kernel/time/timekeeping.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c
index b6974fc..3a4d3b2 100644
--- a/kernel/time/timekeeping.c
+++ b/kernel/time/timekeeping.c
@@ -3070,7 +3070,7 @@ static int __init tk_aux_sysfs_init(void)
 		return -ENOMEM;
 	}
 
-	for (int i = 0; i <= MAX_AUX_CLOCKS; i++) {
+	for (int i = 0; i < MAX_AUX_CLOCKS; i++) {
 		char id[2] = { [0] = '0' + i, };
 		struct kobject *clk = kobject_create_and_add(id, auxo);