diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c | 6 | 
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c index e9b45089a28a..863b2a34b2d6 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c @@ -38,6 +38,7 @@ static int amdgpu_sched_process_priority_override(struct amdgpu_device *adev,  {  	struct fd f = fdget(fd);  	struct amdgpu_fpriv *fpriv; +	struct amdgpu_ctx_mgr *mgr;  	struct amdgpu_ctx *ctx;  	uint32_t id;  	int r; @@ -51,8 +52,11 @@ static int amdgpu_sched_process_priority_override(struct amdgpu_device *adev,  		return r;  	} -	idr_for_each_entry(&fpriv->ctx_mgr.ctx_handles, ctx, id) +	mgr = &fpriv->ctx_mgr; +	mutex_lock(&mgr->lock); +	idr_for_each_entry(&mgr->ctx_handles, ctx, id)  		amdgpu_ctx_priority_override(ctx, priority); +	mutex_unlock(&mgr->lock);  	fdput(f);  	return 0;  | 
