Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 285017
b: refs/heads/master
c: b669300
h: refs/heads/master
i:
  285015: 77cd32e
v: v3
  • Loading branch information
Catalin Marinas committed Dec 2, 2011
1 parent 924f0b0 commit f095b4a
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 7 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 5f79020cb9fea59a5d4d1712bcd320523b129b35
refs/heads/master: b66930052abf2e41b8a978ae265303917cbe6fa0
21 changes: 15 additions & 6 deletions trunk/mm/kmemleak.c
Original file line number Diff line number Diff line change
Expand Up @@ -797,9 +797,13 @@ static void __init log_early(int op_type, const void *ptr, size_t size,
unsigned long flags;
struct early_log *log;

if (atomic_read(&kmemleak_error)) {
/* kmemleak stopped recording, just count the requests */
crt_early_log++;
return;
}

if (crt_early_log >= ARRAY_SIZE(early_log)) {
pr_warning("Early log buffer exceeded, "
"please increase DEBUG_KMEMLEAK_EARLY_LOG_SIZE\n");
kmemleak_disable();
return;
}
Expand Down Expand Up @@ -1634,7 +1638,6 @@ static void kmemleak_disable(void)
return;

/* stop any memory operation tracing */
atomic_set(&kmemleak_early_log, 0);
atomic_set(&kmemleak_enabled, 0);

/* check whether it is too early for a kernel thread */
Expand Down Expand Up @@ -1694,12 +1697,18 @@ void __init kmemleak_init(void)
scan_area_cache = KMEM_CACHE(kmemleak_scan_area, SLAB_NOLEAKTRACE);
INIT_PRIO_TREE_ROOT(&object_tree_root);

if (crt_early_log >= ARRAY_SIZE(early_log))
pr_warning("Early log buffer exceeded (%d), please increase "
"DEBUG_KMEMLEAK_EARLY_LOG_SIZE\n", crt_early_log);

/* the kernel is still in UP mode, so disabling the IRQs is enough */
local_irq_save(flags);
if (!atomic_read(&kmemleak_error)) {
atomic_set(&kmemleak_early_log, 0);
if (atomic_read(&kmemleak_error)) {
local_irq_restore(flags);
return;
} else
atomic_set(&kmemleak_enabled, 1);
atomic_set(&kmemleak_early_log, 0);
}
local_irq_restore(flags);

/*
Expand Down

0 comments on commit f095b4a

Please sign in to comment.