Commit 264ef8a904943ed7d0b04fa958894d7a5c2b2c61
1 parent
ec3a354bd4
Exists in
master
and in
4 other branches
kmemleak: Remove alloc_bootmem annotations introduced in the past
kmemleak_alloc() calls were added in some places where alloc_bootmem was called. Since now kmemleak tracks bootmem allocations, these explicit calls should be run. Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> Cc: Ingo Molnar <mingo@elte.hu> Acked-by: Pekka Enberg <penberg@cs.helsinki.fi>
Showing 2 changed files with 3 additions and 18 deletions Side-by-side Diff
kernel/pid.c
... | ... | @@ -36,7 +36,6 @@ |
36 | 36 | #include <linux/pid_namespace.h> |
37 | 37 | #include <linux/init_task.h> |
38 | 38 | #include <linux/syscalls.h> |
39 | -#include <linux/kmemleak.h> | |
40 | 39 | |
41 | 40 | #define pid_hashfn(nr, ns) \ |
42 | 41 | hash_long((unsigned long)nr + (unsigned long)ns, pidhash_shift) |
... | ... | @@ -513,12 +512,6 @@ |
513 | 512 | pid_hash = alloc_bootmem(pidhash_size * sizeof(*(pid_hash))); |
514 | 513 | if (!pid_hash) |
515 | 514 | panic("Could not alloc pidhash!\n"); |
516 | - /* | |
517 | - * pid_hash contains references to allocated struct pid objects and it | |
518 | - * must be scanned by kmemleak to avoid false positives. | |
519 | - */ | |
520 | - kmemleak_alloc(pid_hash, pidhash_size * sizeof(*(pid_hash)), 0, | |
521 | - GFP_KERNEL); | |
522 | 515 | for (i = 0; i < pidhash_size; i++) |
523 | 516 | INIT_HLIST_HEAD(&pid_hash[i]); |
524 | 517 | } |
mm/page_alloc.c
... | ... | @@ -4745,8 +4745,10 @@ |
4745 | 4745 | * some pages at the end of hash table which |
4746 | 4746 | * alloc_pages_exact() automatically does |
4747 | 4747 | */ |
4748 | - if (get_order(size) < MAX_ORDER) | |
4748 | + if (get_order(size) < MAX_ORDER) { | |
4749 | 4749 | table = alloc_pages_exact(size, GFP_ATOMIC); |
4750 | + kmemleak_alloc(table, size, 1, GFP_ATOMIC); | |
4751 | + } | |
4750 | 4752 | } |
4751 | 4753 | } while (!table && size > PAGE_SIZE && --log2qty); |
4752 | 4754 | |
... | ... | @@ -4763,16 +4765,6 @@ |
4763 | 4765 | *_hash_shift = log2qty; |
4764 | 4766 | if (_hash_mask) |
4765 | 4767 | *_hash_mask = (1 << log2qty) - 1; |
4766 | - | |
4767 | - /* | |
4768 | - * If hashdist is set, the table allocation is done with __vmalloc() | |
4769 | - * which invokes the kmemleak_alloc() callback. This function may also | |
4770 | - * be called before the slab and kmemleak are initialised when | |
4771 | - * kmemleak simply buffers the request to be executed later | |
4772 | - * (GFP_ATOMIC flag ignored in this case). | |
4773 | - */ | |
4774 | - if (!hashdist) | |
4775 | - kmemleak_alloc(table, size, 1, GFP_ATOMIC); | |
4776 | 4768 | |
4777 | 4769 | return table; |
4778 | 4770 | } |