From: Christian König Date: Wed, 25 Feb 2026 14:12:02 +0000 (+0100) Subject: drm/amdgpu: restart the CS if some parts of the VM are still invalidated X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=59720bfd8c6dbebeb8d5a7ab64241b007efd9213;p=thirdparty%2Flinux.git drm/amdgpu: restart the CS if some parts of the VM are still invalidated Make sure that we only submit work with full up to date VM page tables. Signed-off-by: Christian König Reviewed-by: Vitaly Prosyak Tested-by: Vitaly Prosyak Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher --- diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c index c42ae3e6fdd1..fc071efd4c25 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c @@ -1274,6 +1274,7 @@ static int amdgpu_cs_submit(struct amdgpu_cs_parser *p, { struct amdgpu_fpriv *fpriv = p->filp->driver_priv; struct amdgpu_job *leader = p->gang_leader; + struct amdgpu_vm *vm = &fpriv->vm; struct amdgpu_bo_list_entry *e; struct drm_gem_object *gobj; unsigned long index; @@ -1319,7 +1320,8 @@ static int amdgpu_cs_submit(struct amdgpu_cs_parser *p, amdgpu_hmm_range_free(e->range); e->range = NULL; } - if (r) { + + if (r || !list_empty(&vm->individual.moved)) { r = -EAGAIN; mutex_unlock(&p->adev->notifier_lock); return r;