History

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 *".

Kees Cook committed 8 months ago

Commit 69050f81 parent d39a1d78016 files · +20055 −20913Browse files

Showing the changes to kernel/debug (1 of 8016 files). Show all

Unified · Split

kernel/debug/kdb/kdb_main.c+2−2
@@ -661,7 +661,7 @@ static int kdb_defcmd2(const char *cmdstr, const char *argv0) · 660 unmodified lines
661661 return 0;
662662 }
663663
664− kms = kmalloc(sizeof(*kms), GFP_KDB);
664+ kms = kmalloc_obj(*kms, GFP_KDB);
665665 if (!kms) {
666666 kdb_printf("Could not allocate new kdb macro command: %s\n",
667667 cmdstr);
@@ -707,7 +707,7 @@ static int kdb_defcmd(int argc, const char **argv) · 39 unmodified lines
707707 kdb_printf("Command only available during kdb_init()\n");
708708 return KDB_NOTIMP;
709709 }
710− kdb_macro = kzalloc(sizeof(*kdb_macro), GFP_KDB);
710+ kdb_macro = kzalloc_obj(*kdb_macro, GFP_KDB);
711711 if (!kdb_macro)
712712 goto fail_defcmd;
713713

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t