[PATCH RESEND] sched/topology: Convert kzalloc() to kcalloc() in topology.c

Fushuai Wang posted 1 patch 1 month, 3 weeks ago
There is a newer version of this series
kernel/sched/topology.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
[PATCH RESEND] sched/topology: Convert kzalloc() to kcalloc() in topology.c
Posted by Fushuai Wang 1 month, 3 weeks ago
The kzalloc() doesn't check for overflows in size multiplication,
so Use kcalloc() instead of it.

Signed-off-by: Fushuai Wang <wangfushuai@baidu.com>
---
 kernel/sched/topology.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/kernel/sched/topology.c b/kernel/sched/topology.c
index cf643a5ddedd..f638892b9b96 100644
--- a/kernel/sched/topology.c
+++ b/kernel/sched/topology.c
@@ -2055,7 +2055,7 @@ void sched_init_numa(int offline_node)
 
 	sched_domains_numa_levels = 0;
 
-	masks = kzalloc(sizeof(void *) * nr_levels, GFP_KERNEL);
+	masks = kcalloc(nr_levels, sizeof(void *), GFP_KERNEL);
 	if (!masks)
 		return;
 
@@ -2064,7 +2064,7 @@ void sched_init_numa(int offline_node)
 	 * CPUs of nodes that are that many hops away from us.
 	 */
 	for (i = 0; i < nr_levels; i++) {
-		masks[i] = kzalloc(nr_node_ids * sizeof(void *), GFP_KERNEL);
+		masks[i] = kcalloc(nr_node_ids, sizeof(void *), GFP_KERNEL);
 		if (!masks[i])
 			return;
 
@@ -2096,7 +2096,7 @@ void sched_init_numa(int offline_node)
 	/* Compute default topology size */
 	for (i = 0; sched_domain_topology[i].mask; i++);
 
-	tl = kzalloc((i + nr_levels + 1) *
+	tl = kcalloc((i + nr_levels + 1),
 			sizeof(struct sched_domain_topology_level), GFP_KERNEL);
 	if (!tl)
 		return;
-- 
2.36.1
Re: [PATCH RESEND] sched/topology: Convert kzalloc() to kcalloc() in topology.c
Posted by Steven Rostedt 1 month, 3 weeks ago
On Wed, 17 Dec 2025 21:05:45 +0800
Fushuai Wang <fushuai.wang@linux.dev> wrote:

> @@ -2096,7 +2096,7 @@ void sched_init_numa(int offline_node)
>  	/* Compute default topology size */
>  	for (i = 0; sched_domain_topology[i].mask; i++);
>  
> -	tl = kzalloc((i + nr_levels + 1) *
> +	tl = kcalloc((i + nr_levels + 1),
>  			sizeof(struct sched_domain_topology_level), GFP_KERNEL);

I like the conversion, but here you can lose the parenthesis:

	tl = kcalloc(i + nr_levels + 1,
 			sizeof(struct sched_domain_topology_level), GFP_KERNEL);

-- Steve


>  	if (!tl)
>  		return;