summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHaofeng Li <lihaofeng@kylinos.cn>2025-10-15 14:17:53 +0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2025-11-02 22:18:02 +0900
commit66178a7bdd6d3a1c280eb87ad649d7c529ea026f (patch)
treed822f195abdefbc0a7b82109d882e87b6b37bdf7
parent60407ac17238a802c79978ddae9e9f6a84b53026 (diff)
downloadlinux-66178a7bdd6d3a1c280eb87ad649d7c529ea026f.tar.gz
linux-66178a7bdd6d3a1c280eb87ad649d7c529ea026f.tar.bz2
linux-66178a7bdd6d3a1c280eb87ad649d7c529ea026f.zip
timekeeping: Fix aux clocks sysfs initialization loop bound
[ Upstream commit 39a9ed0fb6dac58547afdf9b6cb032d326a3698f ] 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 Signed-off-by: Sasha Levin <sashal@kernel.org>
-rw-r--r--kernel/time/timekeeping.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c
index b6974fce800c..3a4d3b2e3f74 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);