drm/amdgpu: fix clear_all and replace handling in the VM (v2)
authorJunwei Zhang <Jerry.Zhang@amd.com>
Tue, 5 Jun 2018 09:31:51 +0000 (17:31 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 13 Jun 2018 18:45:20 +0000 (13:45 -0500)
v2: assign bo_va as well

We need to put the lose ends on the invalid list because it is possible
that we need to split up huge pages for them.

Cc: stable@vger.kernel.org
Signed-off-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Junwei Zhang <Jerry.Zhang@amd.com> (v2)
Reviewed-by: David Zhou <david1.zhou@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c

index ccba88c..b0eb2f5 100644 (file)
@@ -2123,7 +2123,8 @@ int amdgpu_vm_bo_clear_mappings(struct amdgpu_device *adev,
                        before->last = saddr - 1;
                        before->offset = tmp->offset;
                        before->flags = tmp->flags;
-                       list_add(&before->list, &tmp->list);
+                       before->bo_va = tmp->bo_va;
+                       list_add(&before->list, &tmp->bo_va->invalids);
                }
 
                /* Remember mapping split at the end */
@@ -2133,7 +2134,8 @@ int amdgpu_vm_bo_clear_mappings(struct amdgpu_device *adev,
                        after->offset = tmp->offset;
                        after->offset += after->start - tmp->start;
                        after->flags = tmp->flags;
-                       list_add(&after->list, &tmp->list);
+                       after->bo_va = tmp->bo_va;
+                       list_add(&after->list, &tmp->bo_va->invalids);
                }
 
                list_del(&tmp->list);