Hi guys, during the recent discussion about SLAB_TYPESAFE_BY_RCU, dma_fence_get_rcu and dma_fence_get_rcu_safe we found that the RCU handling for dma_resv objects was implemented multiple times. Unfortunately a lot of those implementations get the rather complicated dance with RCU and the sequence number handling wrong. So this patch set aims to audit and unify this by providing an iterator which automatically restarts when a modification to the dma_resv object is detected. The result is pretty impressive I think since this not only mean that we got rid of all those incorrect dma_fence_get_rcu() cases, but also reduce the overall loc count quite a bit. Please review and/or comment. Cheers, Christian.