diff options
author | Lucas Stach <l.stach@pengutronix.de> | 2017-06-13 10:26:46 +0200 |
---|---|---|
committer | Lucas Stach <l.stach@pengutronix.de> | 2019-02-27 23:51:43 +0100 |
commit | 547c7138bcfb869c4cda6548f358eaa64102cccf (patch) | |
tree | 0168c78127332548381f5c369bd91dd1f3101f76 /drivers/dma-buf | |
parent | 60b801999c48b6c1dd04e653a38e2e613664264e (diff) | |
download | linux-547c7138bcfb869c4cda6548f358eaa64102cccf.tar.bz2 |
dma-buf: add some lockdep asserts to the reservation object implementation
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 <l.stach@pengutronix.de>
Reviewed-by: Christian König <christian.koenig@amd.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180111165302.25556-1-l.stach@pengutronix.de
Diffstat (limited to 'drivers/dma-buf')
-rw-r--r-- | drivers/dma-buf/reservation.c | 8 |
1 files changed, 8 insertions, 0 deletions
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); |