]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/amdgpu: restart the CS if some parts of the VM are still invalidated
authorChristian König <christian.koenig@amd.com>
Wed, 25 Feb 2026 14:12:02 +0000 (15:12 +0100)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 4 Jun 2026 19:24:48 +0000 (15:24 -0400)
Make sure that we only submit work with full up to date VM page tables.

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Vitaly Prosyak <vitaly.prosyak@amd.com>
Tested-by: Vitaly Prosyak <vitaly.prosyak@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c

index c42ae3e6fdd13768f0ff269b5032d91e88db6ff0..fc071efd4c25541de4d3c423142dbcba57cc177c 100644 (file)
@@ -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;