From 547c7138bcfb869c4cda6548f358eaa64102cccf Mon Sep 17 00:00:00 2001 From: Lucas Stach Date: Tue, 13 Jun 2017 10:26:46 +0200 Subject: [PATCH] dma-buf: add some lockdep asserts to the reservation object implementation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This adds lockdep asserts to the reservation functions which state in their documentation that obj->lock must be held. Allows builds with PROVE_LOCKING enabled to check that the locking requirements are met. Signed-off-by: Lucas Stach Reviewed-by: Christian König Link: https://patchwork.freedesktop.org/patch/msgid/20180111165302.25556-1-l.stach@pengutronix.de --- drivers/dma-buf/reservation.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/dma-buf/reservation.c b/drivers/dma-buf/reservation.c index c1618335ca99..4d32e2c67862 100644 --- a/drivers/dma-buf/reservation.c +++ b/drivers/dma-buf/reservation.c @@ -73,6 +73,8 @@ int reservation_object_reserve_shared(struct reservation_object *obj, struct reservation_object_list *old, *new; unsigned int i, j, k, max; + reservation_object_assert_held(obj); + old = reservation_object_get_list(obj); if (old && old->shared_max) { @@ -151,6 +153,8 @@ void reservation_object_add_shared_fence(struct reservation_object *obj, dma_fence_get(fence); + reservation_object_assert_held(obj); + fobj = reservation_object_get_list(obj); count = fobj->shared_count; @@ -196,6 +200,8 @@ void reservation_object_add_excl_fence(struct reservation_object *obj, struct reservation_object_list *old; u32 i = 0; + reservation_object_assert_held(obj); + old = reservation_object_get_list(obj); if (old) i = old->shared_count; @@ -236,6 +242,8 @@ int reservation_object_copy_fences(struct reservation_object *dst, size_t size; unsigned i; + reservation_object_assert_held(dst); + rcu_read_lock(); src_list = rcu_dereference(src->fence);