Skip to content

Commit

Permalink
kmemleak: Scan all thread stacks
Browse files Browse the repository at this point in the history
This patch changes the for_each_process() loop with the
do_each_thread()/while_each_thread() pair.

Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
  • Loading branch information
Catalin Marinas committed Sep 4, 2009
1 parent 8e01936 commit 43ed5d6
Showing 1 changed file with 7 additions and 7 deletions.
14 changes: 7 additions & 7 deletions mm/kmemleak.c
Original file line number Diff line number Diff line change
Expand Up @@ -1074,7 +1074,6 @@ static void kmemleak_scan(void)
{
unsigned long flags;
struct kmemleak_object *object, *tmp;
struct task_struct *task;
int i;
int new_leaks = 0;
int gray_list_pass = 0;
Expand Down Expand Up @@ -1141,15 +1140,16 @@ static void kmemleak_scan(void)
}

/*
* Scanning the task stacks may introduce false negatives and it is
* not enabled by default.
* Scanning the task stacks (may introduce false negatives).
*/
if (kmemleak_stack_scan) {
struct task_struct *p, *g;

read_lock(&tasklist_lock);
for_each_process(task)
scan_block(task_stack_page(task),
task_stack_page(task) + THREAD_SIZE,
NULL, 0);
do_each_thread(g, p) {
scan_block(task_stack_page(p), task_stack_page(p) +
THREAD_SIZE, NULL, 0);
} while_each_thread(g, p);
read_unlock(&tasklist_lock);
}

Expand Down

0 comments on commit 43ed5d6

Please sign in to comment.