diff options
Diffstat (limited to 'mm/kmemleak.c')
-rw-r--r-- | mm/kmemleak.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/mm/kmemleak.c b/mm/kmemleak.c index e96e0ec6a56e..c37e8e50e4de 100644 --- a/mm/kmemleak.c +++ b/mm/kmemleak.c | |||
@@ -190,7 +190,9 @@ static unsigned long max_addr; | |||
190 | static unsigned long next_scan_yield; | 190 | static unsigned long next_scan_yield; |
191 | static struct task_struct *scan_thread; | 191 | static struct task_struct *scan_thread; |
192 | static unsigned long jiffies_scan_yield; | 192 | static unsigned long jiffies_scan_yield; |
193 | /* used to avoid reporting of recently allocated objects */ | ||
193 | static unsigned long jiffies_min_age; | 194 | static unsigned long jiffies_min_age; |
195 | static unsigned long jiffies_last_scan; | ||
194 | /* delay between automatic memory scannings */ | 196 | /* delay between automatic memory scannings */ |
195 | static signed long jiffies_scan_wait; | 197 | static signed long jiffies_scan_wait; |
196 | /* enables or disables the task stacks scanning */ | 198 | /* enables or disables the task stacks scanning */ |
@@ -284,7 +286,8 @@ static int color_gray(const struct kmemleak_object *object) | |||
284 | static int unreferenced_object(struct kmemleak_object *object) | 286 | static int unreferenced_object(struct kmemleak_object *object) |
285 | { | 287 | { |
286 | return (object->flags & OBJECT_ALLOCATED) && color_white(object) && | 288 | return (object->flags & OBJECT_ALLOCATED) && color_white(object) && |
287 | time_is_before_eq_jiffies(object->jiffies + jiffies_min_age); | 289 | time_before_eq(object->jiffies + jiffies_min_age, |
290 | jiffies_last_scan); | ||
288 | } | 291 | } |
289 | 292 | ||
290 | /* | 293 | /* |
@@ -927,6 +930,8 @@ static void kmemleak_scan(void) | |||
927 | int i; | 930 | int i; |
928 | int new_leaks = 0; | 931 | int new_leaks = 0; |
929 | 932 | ||
933 | jiffies_last_scan = jiffies; | ||
934 | |||
930 | /* prepare the kmemleak_object's */ | 935 | /* prepare the kmemleak_object's */ |
931 | rcu_read_lock(); | 936 | rcu_read_lock(); |
932 | list_for_each_entry_rcu(object, &object_list, object_list) { | 937 | list_for_each_entry_rcu(object, &object_list, object_list) { |