Am 05.06.2018 um 10:09 schrieb Junwei Zhang: > From: Christian König <ckoenig.leichtzumerken at gmail.com> > > (comments: I cannot receive amdgfx mail recently and reply the mail directly, > so send it out with my update v2, tested with Unigine Heaven, glmark2, gputest, > some cases from vulkan PRT test) > > v2: store 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. > > Signed-off-by: Christian König <christian.koenig at amd.com> > Signed-off-by: Junwei Zhang <Jerry.Zhang at amd.com> Good catch that assigning the bo_va is also missing. David can you take a look and give a review? Since I'm a co-author I can't do it myself. Thanks, Christian. > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c > index 850cd66..cc9d486 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c > @@ -2172,7 +2172,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 */ > @@ -2182,7 +2183,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);