mirror of
https://github.com/torvalds/linux.git
synced 2026-09-26 18:12:03 +02:00
drm/amdgpu: annotate eviction fence signaling path
Make sure lockdep sees the dependencies here. Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Sunil Khatri <sunil.khatri@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
809773e066
commit
fc61df1516
|
|
@ -64,8 +64,17 @@ amdgpu_eviction_fence_suspend_worker(struct work_struct *work)
|
||||||
container_of(evf_mgr, struct amdgpu_fpriv, evf_mgr);
|
container_of(evf_mgr, struct amdgpu_fpriv, evf_mgr);
|
||||||
struct amdgpu_userq_mgr *uq_mgr = &fpriv->userq_mgr;
|
struct amdgpu_userq_mgr *uq_mgr = &fpriv->userq_mgr;
|
||||||
struct dma_fence *ev_fence;
|
struct dma_fence *ev_fence;
|
||||||
|
bool cookie;
|
||||||
|
|
||||||
mutex_lock(&uq_mgr->userq_mutex);
|
mutex_lock(&uq_mgr->userq_mutex);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This is intentionally after taking the userq_mutex since we do
|
||||||
|
* allocate memory while holding this lock, but only after ensuring that
|
||||||
|
* the eviction fence is signaled.
|
||||||
|
*/
|
||||||
|
cookie = dma_fence_begin_signalling();
|
||||||
|
|
||||||
ev_fence = amdgpu_evf_mgr_get_fence(evf_mgr);
|
ev_fence = amdgpu_evf_mgr_get_fence(evf_mgr);
|
||||||
amdgpu_userq_evict(uq_mgr, !evf_mgr->shutdown);
|
amdgpu_userq_evict(uq_mgr, !evf_mgr->shutdown);
|
||||||
|
|
||||||
|
|
@ -75,6 +84,7 @@ amdgpu_eviction_fence_suspend_worker(struct work_struct *work)
|
||||||
* next fence.
|
* next fence.
|
||||||
*/
|
*/
|
||||||
dma_fence_signal(ev_fence);
|
dma_fence_signal(ev_fence);
|
||||||
|
dma_fence_end_signalling(cookie);
|
||||||
dma_fence_put(ev_fence);
|
dma_fence_put(ev_fence);
|
||||||
mutex_unlock(&uq_mgr->userq_mutex);
|
mutex_unlock(&uq_mgr->userq_mutex);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user