On 08/31/2018 09:27 PM, Christian König wrote: > amdgpu_vm_bo_* functions should come much later. > > Signed-off-by: Christian König <christian.koenig at amd.com> Reviewed-by: Junwei Zhang <Jerry.Zhang at amd.com> > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 90 +++++++++++++++++----------------- > 1 file changed, 45 insertions(+), 45 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c > index d59222fb5931..a9275a99d793 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c > @@ -133,51 +133,6 @@ struct amdgpu_prt_cb { > struct dma_fence_cb cb; > }; > > -/** > - * amdgpu_vm_bo_base_init - Adds bo to the list of bos associated with the vm > - * > - * @base: base structure for tracking BO usage in a VM > - * @vm: vm to which bo is to be added > - * @bo: amdgpu buffer object > - * > - * Initialize a bo_va_base structure and add it to the appropriate lists > - * > - */ > -static void amdgpu_vm_bo_base_init(struct amdgpu_vm_bo_base *base, > - struct amdgpu_vm *vm, > - struct amdgpu_bo *bo) > -{ > - base->vm = vm; > - base->bo = bo; > - INIT_LIST_HEAD(&base->bo_list); > - INIT_LIST_HEAD(&base->vm_status); > - > - if (!bo) > - return; > - list_add_tail(&base->bo_list, &bo->va); > - > - if (bo->tbo.resv != vm->root.base.bo->tbo.resv) > - return; > - > - vm->bulk_moveable = false; > - if (bo->tbo.type == ttm_bo_type_kernel) > - list_move(&base->vm_status, &vm->relocated); > - else > - list_move(&base->vm_status, &vm->idle); > - > - if (bo->preferred_domains & > - amdgpu_mem_type_to_domain(bo->tbo.mem.mem_type)) > - return; > - > - /* > - * we checked all the prerequisites, but it looks like this per vm bo > - * is currently evicted. add the bo to the evicted list to make sure it > - * is validated on next vm use to avoid fault. > - * */ > - list_move_tail(&base->vm_status, &vm->evicted); > - base->moved = true; > -} > - > /** > * amdgpu_vm_level_shift - return the addr shift for each level > * > @@ -249,6 +204,51 @@ static unsigned amdgpu_vm_bo_size(struct amdgpu_device *adev, unsigned level) > return AMDGPU_GPU_PAGE_ALIGN(amdgpu_vm_num_entries(adev, level) * 8); > } > > +/** > + * amdgpu_vm_bo_base_init - Adds bo to the list of bos associated with the vm > + * > + * @base: base structure for tracking BO usage in a VM > + * @vm: vm to which bo is to be added > + * @bo: amdgpu buffer object > + * > + * Initialize a bo_va_base structure and add it to the appropriate lists > + * > + */ > +static void amdgpu_vm_bo_base_init(struct amdgpu_vm_bo_base *base, > + struct amdgpu_vm *vm, > + struct amdgpu_bo *bo) > +{ > + base->vm = vm; > + base->bo = bo; > + INIT_LIST_HEAD(&base->bo_list); > + INIT_LIST_HEAD(&base->vm_status); > + > + if (!bo) > + return; > + list_add_tail(&base->bo_list, &bo->va); > + > + if (bo->tbo.resv != vm->root.base.bo->tbo.resv) > + return; > + > + vm->bulk_moveable = false; > + if (bo->tbo.type == ttm_bo_type_kernel) > + list_move(&base->vm_status, &vm->relocated); > + else > + list_move(&base->vm_status, &vm->idle); > + > + if (bo->preferred_domains & > + amdgpu_mem_type_to_domain(bo->tbo.mem.mem_type)) > + return; > + > + /* > + * we checked all the prerequisites, but it looks like this per vm bo > + * is currently evicted. add the bo to the evicted list to make sure it > + * is validated on next vm use to avoid fault. > + * */ > + list_move_tail(&base->vm_status, &vm->evicted); > + base->moved = true; > +} > + > /** > * amdgpu_vm_get_pd_bo - add the VM PD to a validation list > * >