Quoting Christian König (2019-08-21 13:31:45)
@@ -528,20 +352,9 @@ void dma_resv_prune_fences(struct dma_resv *obj) dma_fence_put(fence); }
list = dma_resv_get_list(obj);
if (!list)
return;
for (i = 0; i < list->shared_count; ++i) {
fence = rcu_dereference_protected(list->shared[i],
dma_resv_held(obj));
if (!dma_fence_is_signaled(fence))
continue;
RCU_INIT_POINTER(list->shared[i], dma_fence_get_stub());
dma_fence_put(fence);
}
fence = dma_resv_fences_deref(obj, &obj->readers);
if (dma_fence_is_signaled(fence))
dma_resv_fences_set(obj, &obj->readers, NULL);
Needs fence==NULL safeguards.
It's not as pruny as it was before. Or did you add some magic to fence-array? -Chris
linaro-mm-sig@lists.linaro.org