[PATCH 18/26] drm/i915: use new iterator in i915_gem_object_last_write_engine
Christian König
ckoenig.leichtzumerken at gmail.com
Wed Sep 22 11:00:03 UTC 2021
Am 22.09.21 um 12:27 schrieb Tvrtko Ursulin:
>
> On 22/09/2021 10:10, Christian König wrote:
>> This is maybe even a fix since the RCU usage here looks incorrect.
>
> I'm afraid I gazumped you here by removing this function shortly
> before you posted the respin.
Is that already landed in drm-misc-next? If not just give me an Acked-by
and it will be fixed when merging trees together again by just dropping
the change.
Alternatively if it is not in drm-next I will ping the drm-misc-next
maintainer for a merge.
Regards,
Christian.
>
> Regards,
>
> Tvrtko
>
>> Signed-off-by: Christian König <christian.koenig at amd.com>
>> ---
>> drivers/gpu/drm/i915/gem/i915_gem_object.h | 16 ++++++++--------
>> 1 file changed, 8 insertions(+), 8 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object.h
>> b/drivers/gpu/drm/i915/gem/i915_gem_object.h
>> index 48112b9d76df..e20efffce3a9 100644
>> --- a/drivers/gpu/drm/i915/gem/i915_gem_object.h
>> +++ b/drivers/gpu/drm/i915/gem/i915_gem_object.h
>> @@ -507,16 +507,16 @@ static inline struct intel_engine_cs *
>> i915_gem_object_last_write_engine(struct drm_i915_gem_object *obj)
>> {
>> struct intel_engine_cs *engine = NULL;
>> + struct dma_resv_iter cursor;
>> struct dma_fence *fence;
>> - rcu_read_lock();
>> - fence = dma_resv_get_excl_unlocked(obj->base.resv);
>> - rcu_read_unlock();
>> -
>> - if (fence && dma_fence_is_i915(fence) &&
>> !dma_fence_is_signaled(fence))
>> - engine = to_request(fence)->engine;
>> - dma_fence_put(fence);
>> -
>> + dma_resv_iter_begin(&cursor, obj->base.resv, false);
>> + dma_resv_for_each_fence_unlocked(&cursor, fence) {
>> + if (fence && dma_fence_is_i915(fence) &&
>> + !dma_fence_is_signaled(fence))
>> + engine = to_request(fence)->engine;
>> + }
>> + dma_resv_iter_end(&cursor);
>> return engine;
>> }
>>
More information about the dri-devel
mailing list