@@ -498,11 +498,12 @@ int amdgpu_vm_pt_clear(struct amdgpu_device *adev, struct amdgpu_vm *vm,
498498 * @level: the page table level
499499 * @immediate: use a immediate update
500500 * @vmbo: pointer to the buffer object pointer
501+ * @xcp_id: GPU partition id
501502 */
502503int amdgpu_vm_pt_create (struct amdgpu_device * adev , struct amdgpu_vm * vm ,
503- int level , bool immediate , struct amdgpu_bo_vm * * vmbo )
504+ int level , bool immediate , struct amdgpu_bo_vm * * vmbo ,
505+ int32_t xcp_id )
504506{
505- struct amdgpu_fpriv * fpriv = container_of (vm , struct amdgpu_fpriv , vm );
506507 struct amdgpu_bo_param bp ;
507508 struct amdgpu_bo * bo ;
508509 struct dma_resv * resv ;
@@ -535,7 +536,7 @@ int amdgpu_vm_pt_create(struct amdgpu_device *adev, struct amdgpu_vm *vm,
535536
536537 bp .type = ttm_bo_type_kernel ;
537538 bp .no_wait_gpu = immediate ;
538- bp .xcp_id_plus1 = fpriv -> xcp_id == ~ 0 ? 0 : fpriv -> xcp_id + 1 ;
539+ bp .xcp_id_plus1 = xcp_id + 1 ;
539540
540541 if (vm -> root .bo )
541542 bp .resv = vm -> root .bo -> tbo .base .resv ;
@@ -561,7 +562,7 @@ int amdgpu_vm_pt_create(struct amdgpu_device *adev, struct amdgpu_vm *vm,
561562 bp .type = ttm_bo_type_kernel ;
562563 bp .resv = bo -> tbo .base .resv ;
563564 bp .bo_ptr_size = sizeof (struct amdgpu_bo );
564- bp .xcp_id_plus1 = fpriv -> xcp_id == ~ 0 ? 0 : fpriv -> xcp_id + 1 ;
565+ bp .xcp_id_plus1 = xcp_id + 1 ;
565566
566567 r = amdgpu_bo_create (adev , & bp , & (* vmbo )-> shadow );
567568
@@ -606,7 +607,8 @@ static int amdgpu_vm_pt_alloc(struct amdgpu_device *adev,
606607 return 0 ;
607608
608609 amdgpu_vm_eviction_unlock (vm );
609- r = amdgpu_vm_pt_create (adev , vm , cursor -> level , immediate , & pt );
610+ r = amdgpu_vm_pt_create (adev , vm , cursor -> level , immediate , & pt ,
611+ vm -> root .bo -> xcp_id );
610612 amdgpu_vm_eviction_lock (vm );
611613 if (r )
612614 return r ;
0 commit comments