diff --git a/[refs] b/[refs] index 421e46480dad..67f4e39b662a 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: a6f5aa1ea05686ad6e84593a00a04161e6dfb3a3 +refs/heads/master: 0587da40be78d3704a48d3e9a619183891727f5f diff --git a/trunk/mm/kmemleak.c b/trunk/mm/kmemleak.c index 96106358e042..f06c0921e472 100644 --- a/trunk/mm/kmemleak.c +++ b/trunk/mm/kmemleak.c @@ -1025,11 +1025,14 @@ static void scan_block(void *_start, void *_end, * added to the gray_list. */ object->count++; - if (color_gray(object)) + if (color_gray(object)) { list_add_tail(&object->gray_list, &gray_list); - else - put_object(object); + spin_unlock_irqrestore(&object->lock, flags); + continue; + } + spin_unlock_irqrestore(&object->lock, flags); + put_object(object); } }