]> git.ipfire.org Git - thirdparty/kernel/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 20:00:11 +0000 (16:00 -0400)
Make sure that we only submit work with full up to date VM page tables.

Backport to 7.1 and older.

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>
(cherry picked from commit 59720bfd8c6dbebeb8d5a7ab64241b007efd9213)
Cc: stable@vger.kernel.org
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c

index b24d5d21be5f2441c31ae44a8c0febbda8c97e12..583fd67a2c648e02f1f2e2956699aaa71a5fab97 100644 (file)
@@ -1277,6 +1277,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;
@@ -1322,7 +1323,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->invalidated)) {
                r = -EAGAIN;
                mutex_unlock(&p->adev->notifier_lock);
                return r;