aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mm/kmemleak.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/mm/kmemleak.c b/mm/kmemleak.c
index 96106358e042..f06c0921e472 100644
--- a/mm/kmemleak.c
+++ b/mm/kmemleak.c
@@ -1025,11 +1025,14 @@ static void scan_block(void *_start, void *_end,
1025 * added to the gray_list. 1025 * added to the gray_list.
1026 */ 1026 */
1027 object->count++; 1027 object->count++;
1028 if (color_gray(object)) 1028 if (color_gray(object)) {
1029 list_add_tail(&object->gray_list, &gray_list); 1029 list_add_tail(&object->gray_list, &gray_list);
1030 else 1030 spin_unlock_irqrestore(&object->lock, flags);
1031 put_object(object); 1031 continue;
1032 }
1033
1032 spin_unlock_irqrestore(&object->lock, flags); 1034 spin_unlock_irqrestore(&object->lock, flags);
1035 put_object(object);
1033 } 1036 }
1034} 1037}
1035 1038