Lines Matching refs:spt

649 		struct intel_vgpu_ppgtt_spt *spt,  in ppgtt_spt_get_entry()  argument
654 struct intel_gvt *gvt = spt->vgpu->gvt; in ppgtt_spt_get_entry()
664 spt->guest_page.gfn << I915_GTT_PAGE_SHIFT, in ppgtt_spt_get_entry()
665 spt->vgpu); in ppgtt_spt_get_entry()
670 spt->guest_page.pde_ips : false); in ppgtt_spt_get_entry()
678 struct intel_vgpu_ppgtt_spt *spt, in ppgtt_spt_set_entry() argument
683 struct intel_gvt *gvt = spt->vgpu->gvt; in ppgtt_spt_set_entry()
693 spt->guest_page.gfn << I915_GTT_PAGE_SHIFT, in ppgtt_spt_set_entry()
694 spt->vgpu); in ppgtt_spt_set_entry()
697 #define ppgtt_get_guest_entry(spt, e, index) \ argument
698 ppgtt_spt_get_entry(spt, NULL, \
699 spt->guest_page.type, e, index, true)
701 #define ppgtt_set_guest_entry(spt, e, index) \ argument
702 ppgtt_spt_set_entry(spt, NULL, \
703 spt->guest_page.type, e, index, true)
705 #define ppgtt_get_shadow_entry(spt, e, index) \ argument
706 ppgtt_spt_get_entry(spt, spt->shadow_page.vaddr, \
707 spt->shadow_page.type, e, index, false)
709 #define ppgtt_set_shadow_entry(spt, e, index) \ argument
710 ppgtt_spt_set_entry(spt, spt->shadow_page.vaddr, \
711 spt->shadow_page.type, e, index, false)
715 struct intel_vgpu_ppgtt_spt *spt; in alloc_spt() local
717 spt = kzalloc(sizeof(*spt), gfp_mask); in alloc_spt()
718 if (!spt) in alloc_spt()
721 spt->shadow_page.page = alloc_page(gfp_mask); in alloc_spt()
722 if (!spt->shadow_page.page) { in alloc_spt()
723 kfree(spt); in alloc_spt()
726 return spt; in alloc_spt()
729 static void free_spt(struct intel_vgpu_ppgtt_spt *spt) in free_spt() argument
731 __free_page(spt->shadow_page.page); in free_spt()
732 kfree(spt); in free_spt()
738 static void ppgtt_free_spt(struct intel_vgpu_ppgtt_spt *spt) in ppgtt_free_spt() argument
740 struct device *kdev = spt->vgpu->gvt->gt->i915->drm.dev; in ppgtt_free_spt()
742 trace_spt_free(spt->vgpu->id, spt, spt->guest_page.type); in ppgtt_free_spt()
744 dma_unmap_page(kdev, spt->shadow_page.mfn << I915_GTT_PAGE_SHIFT, 4096, in ppgtt_free_spt()
747 radix_tree_delete(&spt->vgpu->gtt.spt_tree, spt->shadow_page.mfn); in ppgtt_free_spt()
749 if (spt->guest_page.gfn) { in ppgtt_free_spt()
750 if (spt->guest_page.oos_page) in ppgtt_free_spt()
751 detach_oos_page(spt->vgpu, spt->guest_page.oos_page); in ppgtt_free_spt()
753 intel_vgpu_unregister_page_track(spt->vgpu, spt->guest_page.gfn); in ppgtt_free_spt()
756 list_del_init(&spt->post_shadow_list); in ppgtt_free_spt()
757 free_spt(spt); in ppgtt_free_spt()
762 struct intel_vgpu_ppgtt_spt *spt, *spn; in ppgtt_free_all_spt() local
769 spt = radix_tree_deref_slot(slot); in ppgtt_free_all_spt()
770 list_move(&spt->post_shadow_list, &all_spt); in ppgtt_free_all_spt()
774 list_for_each_entry_safe(spt, spn, &all_spt, post_shadow_list) in ppgtt_free_all_spt()
775 ppgtt_free_spt(spt); in ppgtt_free_all_spt()
779 struct intel_vgpu_ppgtt_spt *spt,
786 struct intel_vgpu_ppgtt_spt *spt = page_track->priv_data; in ppgtt_write_protection_handler() local
793 ret = ppgtt_handle_guest_write_page_table_bytes(spt, gpa, data, bytes); in ppgtt_write_protection_handler()
826 struct intel_vgpu_ppgtt_spt *spt = NULL; in ppgtt_alloc_spt() local
831 spt = alloc_spt(GFP_KERNEL | __GFP_ZERO); in ppgtt_alloc_spt()
832 if (!spt) { in ppgtt_alloc_spt()
840 spt->vgpu = vgpu; in ppgtt_alloc_spt()
841 atomic_set(&spt->refcount, 1); in ppgtt_alloc_spt()
842 INIT_LIST_HEAD(&spt->post_shadow_list); in ppgtt_alloc_spt()
847 spt->shadow_page.type = type; in ppgtt_alloc_spt()
848 daddr = dma_map_page(kdev, spt->shadow_page.page, in ppgtt_alloc_spt()
855 spt->shadow_page.vaddr = page_address(spt->shadow_page.page); in ppgtt_alloc_spt()
856 spt->shadow_page.mfn = daddr >> I915_GTT_PAGE_SHIFT; in ppgtt_alloc_spt()
858 ret = radix_tree_insert(&vgpu->gtt.spt_tree, spt->shadow_page.mfn, spt); in ppgtt_alloc_spt()
862 return spt; in ppgtt_alloc_spt()
867 free_spt(spt); in ppgtt_alloc_spt()
876 struct intel_vgpu_ppgtt_spt *spt; in ppgtt_alloc_spt_gfn() local
879 spt = ppgtt_alloc_spt(vgpu, type); in ppgtt_alloc_spt_gfn()
880 if (IS_ERR(spt)) in ppgtt_alloc_spt_gfn()
881 return spt; in ppgtt_alloc_spt_gfn()
887 ppgtt_write_protection_handler, spt); in ppgtt_alloc_spt_gfn()
889 ppgtt_free_spt(spt); in ppgtt_alloc_spt_gfn()
893 spt->guest_page.type = type; in ppgtt_alloc_spt_gfn()
894 spt->guest_page.gfn = gfn; in ppgtt_alloc_spt_gfn()
895 spt->guest_page.pde_ips = guest_pde_ips; in ppgtt_alloc_spt_gfn()
897 trace_spt_alloc(vgpu->id, spt, type, spt->shadow_page.mfn, gfn); in ppgtt_alloc_spt_gfn()
899 return spt; in ppgtt_alloc_spt_gfn()
902 #define pt_entry_size_shift(spt) \ argument
903 ((spt)->vgpu->gvt->device_info.gtt_entry_size_shift)
905 #define pt_entries(spt) \ argument
906 (I915_GTT_PAGE_SIZE >> pt_entry_size_shift(spt))
908 #define for_each_present_guest_entry(spt, e, i) \ argument
909 for (i = 0; i < pt_entries(spt); \
910 i += spt->guest_page.pde_ips ? GTT_64K_PTE_STRIDE : 1) \
911 if (!ppgtt_get_guest_entry(spt, e, i) && \
912 spt->vgpu->gvt->gtt.pte_ops->test_present(e))
914 #define for_each_present_shadow_entry(spt, e, i) \ argument
915 for (i = 0; i < pt_entries(spt); \
916 i += spt->shadow_page.pde_ips ? GTT_64K_PTE_STRIDE : 1) \
917 if (!ppgtt_get_shadow_entry(spt, e, i) && \
918 spt->vgpu->gvt->gtt.pte_ops->test_present(e))
920 #define for_each_shadow_entry(spt, e, i) \ argument
921 for (i = 0; i < pt_entries(spt); \
922 i += (spt->shadow_page.pde_ips ? GTT_64K_PTE_STRIDE : 1)) \
923 if (!ppgtt_get_shadow_entry(spt, e, i))
925 static inline void ppgtt_get_spt(struct intel_vgpu_ppgtt_spt *spt) in ppgtt_get_spt() argument
927 int v = atomic_read(&spt->refcount); in ppgtt_get_spt()
929 trace_spt_refcount(spt->vgpu->id, "inc", spt, v, (v + 1)); in ppgtt_get_spt()
930 atomic_inc(&spt->refcount); in ppgtt_get_spt()
933 static inline int ppgtt_put_spt(struct intel_vgpu_ppgtt_spt *spt) in ppgtt_put_spt() argument
935 int v = atomic_read(&spt->refcount); in ppgtt_put_spt()
937 trace_spt_refcount(spt->vgpu->id, "dec", spt, v, (v - 1)); in ppgtt_put_spt()
938 return atomic_dec_return(&spt->refcount); in ppgtt_put_spt()
941 static int ppgtt_invalidate_spt(struct intel_vgpu_ppgtt_spt *spt);
980 static inline void ppgtt_invalidate_pte(struct intel_vgpu_ppgtt_spt *spt, in ppgtt_invalidate_pte() argument
983 struct intel_vgpu *vgpu = spt->vgpu; in ppgtt_invalidate_pte()
989 type = spt->shadow_page.type; in ppgtt_invalidate_pte()
998 static int ppgtt_invalidate_spt(struct intel_vgpu_ppgtt_spt *spt) in ppgtt_invalidate_spt() argument
1000 struct intel_vgpu *vgpu = spt->vgpu; in ppgtt_invalidate_spt()
1005 trace_spt_change(spt->vgpu->id, "die", spt, in ppgtt_invalidate_spt()
1006 spt->guest_page.gfn, spt->shadow_page.type); in ppgtt_invalidate_spt()
1008 if (ppgtt_put_spt(spt) > 0) in ppgtt_invalidate_spt()
1011 for_each_present_shadow_entry(spt, &e, index) { in ppgtt_invalidate_spt()
1015 ppgtt_invalidate_pte(spt, &e); in ppgtt_invalidate_spt()
1032 spt->vgpu, &e); in ppgtt_invalidate_spt()
1041 trace_spt_change(spt->vgpu->id, "release", spt, in ppgtt_invalidate_spt()
1042 spt->guest_page.gfn, spt->shadow_page.type); in ppgtt_invalidate_spt()
1043 ppgtt_free_spt(spt); in ppgtt_invalidate_spt()
1047 spt, e.val64, e.type); in ppgtt_invalidate_spt()
1067 static int ppgtt_populate_spt(struct intel_vgpu_ppgtt_spt *spt);
1073 struct intel_vgpu_ppgtt_spt *spt = NULL; in ppgtt_populate_spt_by_guest_entry() local
1082 spt = intel_vgpu_find_spt_by_gfn(vgpu, ops->get_pfn(we)); in ppgtt_populate_spt_by_guest_entry()
1083 if (spt) { in ppgtt_populate_spt_by_guest_entry()
1084 ppgtt_get_spt(spt); in ppgtt_populate_spt_by_guest_entry()
1086 if (ips != spt->guest_page.pde_ips) { in ppgtt_populate_spt_by_guest_entry()
1087 spt->guest_page.pde_ips = ips; in ppgtt_populate_spt_by_guest_entry()
1090 clear_page(spt->shadow_page.vaddr); in ppgtt_populate_spt_by_guest_entry()
1091 ret = ppgtt_populate_spt(spt); in ppgtt_populate_spt_by_guest_entry()
1093 ppgtt_put_spt(spt); in ppgtt_populate_spt_by_guest_entry()
1105 spt = ppgtt_alloc_spt_gfn(vgpu, type, ops->get_pfn(we), ips); in ppgtt_populate_spt_by_guest_entry()
1106 if (IS_ERR(spt)) { in ppgtt_populate_spt_by_guest_entry()
1107 ret = PTR_ERR(spt); in ppgtt_populate_spt_by_guest_entry()
1111 ret = intel_vgpu_enable_page_track(vgpu, spt->guest_page.gfn); in ppgtt_populate_spt_by_guest_entry()
1115 ret = ppgtt_populate_spt(spt); in ppgtt_populate_spt_by_guest_entry()
1119 trace_spt_change(vgpu->id, "new", spt, spt->guest_page.gfn, in ppgtt_populate_spt_by_guest_entry()
1120 spt->shadow_page.type); in ppgtt_populate_spt_by_guest_entry()
1122 return spt; in ppgtt_populate_spt_by_guest_entry()
1125 ppgtt_free_spt(spt); in ppgtt_populate_spt_by_guest_entry()
1126 spt = NULL; in ppgtt_populate_spt_by_guest_entry()
1129 spt, we->val64, we->type); in ppgtt_populate_spt_by_guest_entry()
1149 struct intel_vgpu_ppgtt_spt *spt, unsigned long index, in split_2MB_gtt_entry() argument
1189 ppgtt_set_shadow_entry(spt, se, index); in split_2MB_gtt_entry()
1205 struct intel_vgpu_ppgtt_spt *spt, unsigned long index, in split_64KB_gtt_entry() argument
1230 ppgtt_set_shadow_entry(spt, &entry, index + i); in split_64KB_gtt_entry()
1236 struct intel_vgpu_ppgtt_spt *spt, unsigned long index, in ppgtt_populate_shadow_entry() argument
1264 return split_64KB_gtt_entry(vgpu, spt, index, &se); in ppgtt_populate_shadow_entry()
1270 return split_2MB_gtt_entry(vgpu, spt, index, &se); in ppgtt_populate_shadow_entry()
1282 ppgtt_set_shadow_entry(spt, &se, index); in ppgtt_populate_shadow_entry()
1286 static int ppgtt_populate_spt(struct intel_vgpu_ppgtt_spt *spt) in ppgtt_populate_spt() argument
1288 struct intel_vgpu *vgpu = spt->vgpu; in ppgtt_populate_spt()
1294 trace_spt_change(spt->vgpu->id, "born", spt, in ppgtt_populate_spt()
1295 spt->guest_page.gfn, spt->shadow_page.type); in ppgtt_populate_spt()
1297 for_each_present_guest_entry(spt, &ge, i) { in ppgtt_populate_spt()
1304 ppgtt_get_shadow_entry(spt, &se, i); in ppgtt_populate_spt()
1306 ppgtt_set_shadow_entry(spt, &se, i); in ppgtt_populate_spt()
1308 ret = ppgtt_populate_shadow_entry(vgpu, spt, i, &ge); in ppgtt_populate_spt()
1316 spt, ge.val64, ge.type); in ppgtt_populate_spt()
1320 static int ppgtt_handle_guest_entry_removal(struct intel_vgpu_ppgtt_spt *spt, in ppgtt_handle_guest_entry_removal() argument
1323 struct intel_vgpu *vgpu = spt->vgpu; in ppgtt_handle_guest_entry_removal()
1327 trace_spt_guest_change(spt->vgpu->id, "remove", spt, in ppgtt_handle_guest_entry_removal()
1328 spt->shadow_page.type, se->val64, index); in ppgtt_handle_guest_entry_removal()
1337 vgpu->gtt.scratch_pt[spt->shadow_page.type].page_mfn) in ppgtt_handle_guest_entry_removal()
1355 ppgtt_invalidate_pte(spt, se); in ppgtt_handle_guest_entry_removal()
1361 spt, se->val64, se->type); in ppgtt_handle_guest_entry_removal()
1365 static int ppgtt_handle_guest_entry_add(struct intel_vgpu_ppgtt_spt *spt, in ppgtt_handle_guest_entry_add() argument
1368 struct intel_vgpu *vgpu = spt->vgpu; in ppgtt_handle_guest_entry_add()
1373 trace_spt_guest_change(spt->vgpu->id, "add", spt, spt->shadow_page.type, in ppgtt_handle_guest_entry_add()
1385 ppgtt_get_shadow_entry(spt, &m, index); in ppgtt_handle_guest_entry_add()
1387 ppgtt_set_shadow_entry(spt, &m, index); in ppgtt_handle_guest_entry_add()
1389 ret = ppgtt_populate_shadow_entry(vgpu, spt, index, we); in ppgtt_handle_guest_entry_add()
1396 spt, we->val64, we->type); in ppgtt_handle_guest_entry_add()
1406 struct intel_vgpu_ppgtt_spt *spt = oos_page->spt; in sync_oos_page() local
1412 spt, spt->guest_page.type); in sync_oos_page()
1414 old.type = new.type = get_entry_type(spt->guest_page.type); in sync_oos_page()
1421 spt->guest_page.gfn << PAGE_SHIFT, vgpu); in sync_oos_page()
1424 && !test_and_clear_bit(index, spt->post_shadow_bitmap)) in sync_oos_page()
1428 spt, spt->guest_page.type, in sync_oos_page()
1431 ret = ppgtt_populate_shadow_entry(vgpu, spt, index, &new); in sync_oos_page()
1438 spt->guest_page.write_cnt = 0; in sync_oos_page()
1439 list_del_init(&spt->post_shadow_list); in sync_oos_page()
1447 struct intel_vgpu_ppgtt_spt *spt = oos_page->spt; in detach_oos_page() local
1450 spt, spt->guest_page.type); in detach_oos_page()
1452 spt->guest_page.write_cnt = 0; in detach_oos_page()
1453 spt->guest_page.oos_page = NULL; in detach_oos_page()
1454 oos_page->spt = NULL; in detach_oos_page()
1463 struct intel_vgpu_ppgtt_spt *spt) in attach_oos_page() argument
1465 struct intel_gvt *gvt = spt->vgpu->gvt; in attach_oos_page()
1468 ret = intel_gvt_read_gpa(spt->vgpu, in attach_oos_page()
1469 spt->guest_page.gfn << I915_GTT_PAGE_SHIFT, in attach_oos_page()
1474 oos_page->spt = spt; in attach_oos_page()
1475 spt->guest_page.oos_page = oos_page; in attach_oos_page()
1479 trace_oos_change(spt->vgpu->id, "attach", oos_page->id, in attach_oos_page()
1480 spt, spt->guest_page.type); in attach_oos_page()
1484 static int ppgtt_set_guest_page_sync(struct intel_vgpu_ppgtt_spt *spt) in ppgtt_set_guest_page_sync() argument
1486 struct intel_vgpu_oos_page *oos_page = spt->guest_page.oos_page; in ppgtt_set_guest_page_sync()
1489 ret = intel_vgpu_enable_page_track(spt->vgpu, spt->guest_page.gfn); in ppgtt_set_guest_page_sync()
1493 trace_oos_change(spt->vgpu->id, "set page sync", oos_page->id, in ppgtt_set_guest_page_sync()
1494 spt, spt->guest_page.type); in ppgtt_set_guest_page_sync()
1497 return sync_oos_page(spt->vgpu, oos_page); in ppgtt_set_guest_page_sync()
1500 static int ppgtt_allocate_oos_page(struct intel_vgpu_ppgtt_spt *spt) in ppgtt_allocate_oos_page() argument
1502 struct intel_gvt *gvt = spt->vgpu->gvt; in ppgtt_allocate_oos_page()
1504 struct intel_vgpu_oos_page *oos_page = spt->guest_page.oos_page; in ppgtt_allocate_oos_page()
1512 ret = ppgtt_set_guest_page_sync(oos_page->spt); in ppgtt_allocate_oos_page()
1515 ret = detach_oos_page(spt->vgpu, oos_page); in ppgtt_allocate_oos_page()
1521 return attach_oos_page(oos_page, spt); in ppgtt_allocate_oos_page()
1524 static int ppgtt_set_guest_page_oos(struct intel_vgpu_ppgtt_spt *spt) in ppgtt_set_guest_page_oos() argument
1526 struct intel_vgpu_oos_page *oos_page = spt->guest_page.oos_page; in ppgtt_set_guest_page_oos()
1531 trace_oos_change(spt->vgpu->id, "set page out of sync", oos_page->id, in ppgtt_set_guest_page_oos()
1532 spt, spt->guest_page.type); in ppgtt_set_guest_page_oos()
1534 list_add_tail(&oos_page->vm_list, &spt->vgpu->gtt.oos_page_list_head); in ppgtt_set_guest_page_oos()
1535 return intel_vgpu_disable_page_track(spt->vgpu, spt->guest_page.gfn); in ppgtt_set_guest_page_oos()
1560 ret = ppgtt_set_guest_page_sync(oos_page->spt); in intel_vgpu_sync_oos_pages()
1571 struct intel_vgpu_ppgtt_spt *spt, in ppgtt_handle_guest_write_page_table() argument
1574 struct intel_vgpu *vgpu = spt->vgpu; in ppgtt_handle_guest_write_page_table()
1575 int type = spt->shadow_page.type; in ppgtt_handle_guest_write_page_table()
1588 ppgtt_get_shadow_entry(spt, &old_se, index); in ppgtt_handle_guest_write_page_table()
1591 ret = ppgtt_handle_guest_entry_add(spt, we, index); in ppgtt_handle_guest_write_page_table()
1596 ret = ppgtt_handle_guest_entry_removal(spt, &old_se, index); in ppgtt_handle_guest_write_page_table()
1609 ppgtt_set_shadow_entry(spt, &old_se, index + i); in ppgtt_handle_guest_write_page_table()
1616 ppgtt_set_shadow_entry(spt, &old_se, index); in ppgtt_handle_guest_write_page_table()
1620 ppgtt_set_shadow_entry(spt, &old_se, index); in ppgtt_handle_guest_write_page_table()
1627 spt, we->val64, we->type); in ppgtt_handle_guest_write_page_table()
1633 static inline bool can_do_out_of_sync(struct intel_vgpu_ppgtt_spt *spt) in can_do_out_of_sync() argument
1636 && gtt_type_is_pte_pt(spt->guest_page.type) in can_do_out_of_sync()
1637 && spt->guest_page.write_cnt >= 2; in can_do_out_of_sync()
1640 static void ppgtt_set_post_shadow(struct intel_vgpu_ppgtt_spt *spt, in ppgtt_set_post_shadow() argument
1643 set_bit(index, spt->post_shadow_bitmap); in ppgtt_set_post_shadow()
1644 if (!list_empty(&spt->post_shadow_list)) in ppgtt_set_post_shadow()
1647 list_add_tail(&spt->post_shadow_list, in ppgtt_set_post_shadow()
1648 &spt->vgpu->gtt.post_shadow_list_head); in ppgtt_set_post_shadow()
1664 struct intel_vgpu_ppgtt_spt *spt; in intel_vgpu_flush_post_shadow() local
1670 spt = container_of(pos, struct intel_vgpu_ppgtt_spt, in intel_vgpu_flush_post_shadow()
1673 for_each_set_bit(index, spt->post_shadow_bitmap, in intel_vgpu_flush_post_shadow()
1675 ppgtt_get_guest_entry(spt, &ge, index); in intel_vgpu_flush_post_shadow()
1677 ret = ppgtt_handle_guest_write_page_table(spt, in intel_vgpu_flush_post_shadow()
1681 clear_bit(index, spt->post_shadow_bitmap); in intel_vgpu_flush_post_shadow()
1683 list_del_init(&spt->post_shadow_list); in intel_vgpu_flush_post_shadow()
1689 struct intel_vgpu_ppgtt_spt *spt, in ppgtt_handle_guest_write_page_table_bytes() argument
1692 struct intel_vgpu *vgpu = spt->vgpu; in ppgtt_handle_guest_write_page_table_bytes()
1701 ppgtt_get_guest_entry(spt, &we, index); in ppgtt_handle_guest_write_page_table_bytes()
1716 ret = ppgtt_handle_guest_write_page_table(spt, &we, index); in ppgtt_handle_guest_write_page_table_bytes()
1720 if (!test_bit(index, spt->post_shadow_bitmap)) { in ppgtt_handle_guest_write_page_table_bytes()
1721 int type = spt->shadow_page.type; in ppgtt_handle_guest_write_page_table_bytes()
1723 ppgtt_get_shadow_entry(spt, &se, index); in ppgtt_handle_guest_write_page_table_bytes()
1724 ret = ppgtt_handle_guest_entry_removal(spt, &se, index); in ppgtt_handle_guest_write_page_table_bytes()
1728 ppgtt_set_shadow_entry(spt, &se, index); in ppgtt_handle_guest_write_page_table_bytes()
1730 ppgtt_set_post_shadow(spt, index); in ppgtt_handle_guest_write_page_table_bytes()
1736 spt->guest_page.write_cnt++; in ppgtt_handle_guest_write_page_table_bytes()
1738 if (spt->guest_page.oos_page) in ppgtt_handle_guest_write_page_table_bytes()
1739 ops->set_entry(spt->guest_page.oos_page->mem, &we, index, in ppgtt_handle_guest_write_page_table_bytes()
1742 if (can_do_out_of_sync(spt)) { in ppgtt_handle_guest_write_page_table_bytes()
1743 if (!spt->guest_page.oos_page) in ppgtt_handle_guest_write_page_table_bytes()
1744 ppgtt_allocate_oos_page(spt); in ppgtt_handle_guest_write_page_table_bytes()
1746 ret = ppgtt_set_guest_page_oos(spt); in ppgtt_handle_guest_write_page_table_bytes()
1789 struct intel_vgpu_ppgtt_spt *spt; in shadow_ppgtt_mm() local
1810 spt = ppgtt_populate_spt_by_guest_entry(vgpu, &ge); in shadow_ppgtt_mm()
1811 if (IS_ERR(spt)) { in shadow_ppgtt_mm()
1813 ret = PTR_ERR(spt); in shadow_ppgtt_mm()
1816 ppgtt_generate_shadow_entry(&se, spt, &ge); in shadow_ppgtt_mm()