Reviewed-by: Christian König <[email protected]> for the series.

On 09.10.25 16:28, Alex Deucher wrote:
> Ping on this series.
> 
> Alex
> 
> On Mon, Sep 22, 2025 at 5:33 PM Alex Deucher <[email protected]> 
> wrote:
>>
>> Compare the sequence numbers directly.
>>
>> Fixes: 77cc0da39c7c ("drm/amdgpu: track ring state associated with a fence")
>> Signed-off-by: Alex Deucher <[email protected]>
>> ---
>>  drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 15 ++++++++++-----
>>  1 file changed, 10 insertions(+), 5 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c 
>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
>> index fd8cca241da62..e270df30c2790 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
>> @@ -790,14 +790,19 @@ void amdgpu_ring_backup_unprocessed_commands(struct 
>> amdgpu_ring *ring,
>>         struct dma_fence *unprocessed;
>>         struct dma_fence __rcu **ptr;
>>         struct amdgpu_fence *fence;
>> -       u64 wptr, i, seqno;
>> +       u64 wptr;
>> +       u32 seq, last_seq;
>>
>> -       seqno = amdgpu_fence_read(ring);
>> +       last_seq = amdgpu_fence_read(ring) & ring->fence_drv.num_fences_mask;
>> +       seq = ring->fence_drv.sync_seq & ring->fence_drv.num_fences_mask;
>>         wptr = ring->fence_drv.signalled_wptr;
>>         ring->ring_backup_entries_to_copy = 0;
>>
>> -       for (i = seqno + 1; i <= ring->fence_drv.sync_seq; ++i) {
>> -               ptr = &ring->fence_drv.fences[i & 
>> ring->fence_drv.num_fences_mask];
>> +       do {
>> +               last_seq++;
>> +               last_seq &= ring->fence_drv.num_fences_mask;
>> +
>> +               ptr = &ring->fence_drv.fences[last_seq];
>>                 rcu_read_lock();
>>                 unprocessed = rcu_dereference(*ptr);
>>
>> @@ -813,7 +818,7 @@ void amdgpu_ring_backup_unprocessed_commands(struct 
>> amdgpu_ring *ring,
>>                         wptr = fence->wptr;
>>                 }
>>                 rcu_read_unlock();
>> -       }
>> +       } while (last_seq != seq);
>>  }
>>
>>  /*
>> --
>> 2.51.0
>>

Reply via email to