summaryrefslogtreecommitdiff
path: root/lib/objagg.c
diff options
context:
space:
mode:
authorKees Cook <kees@kernel.org>2026-02-20 23:49:23 -0800
committerKees Cook <kees@kernel.org>2026-02-21 01:02:28 -0800
commit69050f8d6d075dc01af7a5f2f550a8067510366f (patch)
treebb265f94d9dfa7876c06a5d9f88673d496a15341 /lib/objagg.c
parentd39a1d7486d98668dd34aaa6732aad7977c45f5a (diff)
treewide: Replace kmalloc with kmalloc_obj for non-scalar types
This is the result of running the Coccinelle script from scripts/coccinelle/api/kmalloc_objs.cocci. The script is designed to avoid scalar types (which need careful case-by-case checking), and instead replace kmalloc-family calls that allocate struct or union object instances: Single allocations: kmalloc(sizeof(TYPE), ...) are replaced with: kmalloc_obj(TYPE, ...) Array allocations: kmalloc_array(COUNT, sizeof(TYPE), ...) are replaced with: kmalloc_objs(TYPE, COUNT, ...) Flex array allocations: kmalloc(struct_size(PTR, FAM, COUNT), ...) are replaced with: kmalloc_flex(*PTR, FAM, COUNT, ...) (where TYPE may also be *VAR) The resulting allocations no longer return "void *", instead returning "TYPE *". Signed-off-by: Kees Cook <kees@kernel.org>
Diffstat (limited to 'lib/objagg.c')
-rw-r--r--lib/objagg.c17
1 files changed, 8 insertions, 9 deletions
diff --git a/lib/objagg.c b/lib/objagg.c
index 363e43e849ac..c508b78850c0 100644
--- a/lib/objagg.c
+++ b/lib/objagg.c
@@ -525,7 +525,7 @@ struct objagg *objagg_create(const struct objagg_ops *ops,
!ops->delta_destroy))
return ERR_PTR(-EINVAL);
- objagg = kzalloc(sizeof(*objagg), GFP_KERNEL);
+ objagg = kzalloc_obj(*objagg, GFP_KERNEL);
if (!objagg)
return ERR_PTR(-ENOMEM);
objagg->ops = ops;
@@ -610,8 +610,8 @@ const struct objagg_stats *objagg_stats_get(struct objagg *objagg)
struct objagg_obj *objagg_obj;
int i;
- objagg_stats = kzalloc(struct_size(objagg_stats, stats_info,
- objagg->obj_count), GFP_KERNEL);
+ objagg_stats = kzalloc_flex(*objagg_stats, stats_info,
+ objagg->obj_count, GFP_KERNEL);
if (!objagg_stats)
return ERR_PTR(-ENOMEM);
@@ -786,11 +786,11 @@ static struct objagg_tmp_graph *objagg_tmp_graph_create(struct objagg *objagg)
struct objagg_obj *objagg_obj;
int i, j;
- graph = kzalloc(sizeof(*graph), GFP_KERNEL);
+ graph = kzalloc_obj(*graph, GFP_KERNEL);
if (!graph)
return NULL;
- graph->nodes = kcalloc(nodes_count, sizeof(*graph->nodes), GFP_KERNEL);
+ graph->nodes = kzalloc_objs(*graph->nodes, nodes_count, GFP_KERNEL);
if (!graph->nodes)
goto err_nodes_alloc;
graph->nodes_count = nodes_count;
@@ -930,7 +930,7 @@ struct objagg_hints *objagg_hints_get(struct objagg *objagg,
struct objagg_hints *objagg_hints;
int err;
- objagg_hints = kzalloc(sizeof(*objagg_hints), GFP_KERNEL);
+ objagg_hints = kzalloc_obj(*objagg_hints, GFP_KERNEL);
if (!objagg_hints)
return ERR_PTR(-ENOMEM);
@@ -1010,9 +1010,8 @@ objagg_hints_stats_get(struct objagg_hints *objagg_hints)
struct objagg_hints_node *hnode;
int i;
- objagg_stats = kzalloc(struct_size(objagg_stats, stats_info,
- objagg_hints->node_count),
- GFP_KERNEL);
+ objagg_stats = kzalloc_flex(*objagg_stats, stats_info,
+ objagg_hints->node_count, GFP_KERNEL);
if (!objagg_stats)
return ERR_PTR(-ENOMEM);