reservations have an optimized fastpath that bypasses dma_fence_wait(),
make sure we still catch all dependencies in lockdep.

To avoid lockdep complaining about recursion on the fake
dma_fence_wait lock we use the dma_fence_might_sleep annotation.

Cc: Sumit Semwal <sumit.sem...@linaro.org>
Cc: linux-me...@vger.kernel.org
Cc: linaro-mm-...@lists.linaro.org
Signed-off-by: Daniel Vetter <daniel.vet...@ffwll.ch>
---
 drivers/dma-buf/reservation.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/dma-buf/reservation.c b/drivers/dma-buf/reservation.c
index c1618335ca99..599b88c75cd5 100644
--- a/drivers/dma-buf/reservation.c
+++ b/drivers/dma-buf/reservation.c
@@ -429,6 +429,8 @@ long reservation_object_wait_timeout_rcu(struct 
reservation_object *obj,
        long ret = timeout ? timeout : 1;
        int i;
 
+       dma_fence_might_wait();
+
 retry:
        shared_count = 0;
        seq = read_seqcount_begin(&obj->seq);
-- 
2.19.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to