Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0587da40 authored by Catalin Marinas's avatar Catalin Marinas
Browse files

kmemleak: Release the object lock before calling put_object()



The put_object() function may free the object if the use_count
dropped to 0. There shouldn't be further accesses to such object unless
it is known that the use_count is non-zero.

Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
parent a6f5aa1e
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -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);
	}
}