diff options
| author | saturneric <[email protected]> | 2025-08-10 11:18:20 +0000 |
|---|---|---|
| committer | saturneric <[email protected]> | 2025-08-10 11:18:20 +0000 |
| commit | 68ed7ef48a050810aea69f469a21f3a34492ab07 (patch) | |
| tree | 78534eb35fd21e072374e7051e5d54b60199e231 /drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c | |
| parent | Sync "net/" with Linus (diff) | |
| parent | Linux 6.16-rc7 (diff) | |
| download | kernel-68ed7ef48a050810aea69f469a21f3a34492ab07.tar.gz kernel-68ed7ef48a050810aea69f469a21f3a34492ab07.zip | |
Merge tag 'v6.16-rc7'
Linux 6.16-rc7
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c index 426834806fbf..6ac0ce361a2d 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c @@ -427,6 +427,7 @@ bool amdgpu_ring_soft_recovery(struct amdgpu_ring *ring, unsigned int vmid, { unsigned long flags; ktime_t deadline; + bool ret; if (unlikely(ring->adev->debug_disable_soft_recovery)) return false; @@ -441,12 +442,16 @@ bool amdgpu_ring_soft_recovery(struct amdgpu_ring *ring, unsigned int vmid, dma_fence_set_error(fence, -ENODATA); spin_unlock_irqrestore(fence->lock, flags); - atomic_inc(&ring->adev->gpu_reset_counter); while (!dma_fence_is_signaled(fence) && ktime_to_ns(ktime_sub(deadline, ktime_get())) > 0) ring->funcs->soft_recovery(ring, vmid); - return dma_fence_is_signaled(fence); + ret = dma_fence_is_signaled(fence); + /* increment the counter only if soft reset worked */ + if (ret) + atomic_inc(&ring->adev->gpu_reset_counter); + + return ret; } /* |
