diff options
| author | Kees Cook <kees+treewide@kernel.org> | 2026-10-28 23:16:33 -0700 |
|---|---|---|
| committer | Kees Cook <kees@kernel.org> | 2026-11-05 21:55:50 -0800 |
| commit | 4dd10fbbeb9c33709edc89916e19c03c780a0751 (patch) | |
| tree | 9871d2e04bda459c4982438d837e3255d0857cac /tools/lib/python/kdoc | |
| parent | bcd347f31e84ecfb1e45be488b1c7c835b8feb4c (diff) | |
treewide: Convert devm_kmalloc() family to the devm_kmalloc_obj() family
Mirroring the earlier kmalloc_obj() conversion, convert the
device-managed allocators over to the type-based API using the now
updated scripts/coccinelle/api/kmalloc_objs.cocci. The size is derived
from the type rather than written out as a sizeof(), and the result is
a pointer to that type rather than void *, so a mismatch between the
size requested and the variable assigned becomes a build error instead
of being silently accepted.
The conversions break down as:
6713 devm_kzalloc_obj()
1749 devm_kzalloc_objs()
307 devm_kzalloc_flex()
91 devm_kmalloc_objs()
82 devm_kmalloc_obj()
2 devm_kmalloc_flex()
The rules deliberately leave alone allocations sized by a string or a
byte-sized type, or assigned to a pointer to a byte-sized type, since
those are byte buffers rather than objects. Allocations sized by a
multi-byte integer type are only converted when they are assigned to a
pointer to that same type, and allocations of pointers to integers or of
void pointers are left alone too. After this change, 528 files still
call devm_kmalloc(), devm_kzalloc(), devm_kcalloc(), or
devm_kmalloc_array().
Build tested with allmodconfig on x86_64, arm64, i386, arm, riscv, s390,
m68k, mips, parisc, sparc, loongarch, arc, xtensa, and openrisc with GCC
16.2.0 with no new warnings.
Signed-off-by: Kees Cook <kees+treewide@kernel.org>
Diffstat (limited to 'tools/lib/python/kdoc')
0 files changed, 0 insertions, 0 deletions
