Reviewed-by: Chunming Zhou <david1.zhou at amd.com> On 2017å¹´12æ??09æ?¥ 00:41, Christian König wrote: > We can do this with a simple mask as well. > > Signed-off-by: Christian König <christian.koenig at amd.com> > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c > index 796375484f6f..400a00fababd 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c > @@ -1288,11 +1288,11 @@ void amdgpu_vm_get_entry(struct amdgpu_pte_update_params *p, uint64_t addr, > *parent = NULL; > *entry = &p->vm->root; > while ((*entry)->entries) { > - unsigned idx = addr >> amdgpu_vm_level_shift(p->adev, level++); > + unsigned shift = amdgpu_vm_level_shift(p->adev, level++); > > - idx %= amdgpu_bo_size((*entry)->base.bo) / 8; > *parent = *entry; > - *entry = &(*entry)->entries[idx]; > + *entry = &(*entry)->entries[addr >> shift]; > + addr &= (1ULL << shift) - 1; > } > > if (level != p->adev->vm_manager.num_level)