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>
This commit is contained in:
Kees Cook
2026-02-20 23:49:23 -08:00
parent d39a1d7486
commit 69050f8d6d
8016 changed files with 20055 additions and 20913 deletions

View File

@@ -889,7 +889,7 @@ mountpoint:
}
if (!mp)
mp = kmalloc(sizeof(struct mountpoint), GFP_KERNEL);
mp = kmalloc_obj(struct mountpoint, GFP_KERNEL);
if (!mp)
return -ENOMEM;
@@ -2226,7 +2226,7 @@ static inline bool extend_array(struct path **res, struct path **to_free,
if (likely(n < *count))
return true;
p = kmalloc_array(new_count, sizeof(struct path), GFP_KERNEL);
p = kmalloc_objs(struct path, new_count, GFP_KERNEL);
if (p && *count)
memcpy(p, *res, *count * sizeof(struct path));
*count = new_count;
@@ -4187,7 +4187,7 @@ static struct mnt_namespace *alloc_mnt_ns(struct user_namespace *user_ns, bool a
if (!ucounts)
return ERR_PTR(-ENOSPC);
new_ns = kzalloc(sizeof(struct mnt_namespace), GFP_KERNEL_ACCOUNT);
new_ns = kzalloc_obj(struct mnt_namespace, GFP_KERNEL_ACCOUNT);
if (!new_ns) {
dec_mnt_namespaces(ucounts);
return ERR_PTR(-ENOMEM);