Lines Matching refs:slpte

1142 static bool vtd_slpte_nonzero_rsvd(uint64_t slpte, uint32_t level)  in vtd_slpte_nonzero_rsvd()  argument
1158 (slpte & VTD_PT_PAGE_SIZE_MASK)) { in vtd_slpte_nonzero_rsvd()
1165 return slpte & rsvd_mask; in vtd_slpte_nonzero_rsvd()
1180 uint64_t slpte; in vtd_iova_to_slpte() local
1194 slpte = vtd_get_pte(addr, offset); in vtd_iova_to_slpte()
1196 if (slpte == (uint64_t)-1) { in vtd_iova_to_slpte()
1207 *reads = (*reads) && (slpte & VTD_SL_R); in vtd_iova_to_slpte()
1208 *writes = (*writes) && (slpte & VTD_SL_W); in vtd_iova_to_slpte()
1209 if (!(slpte & access_right_check)) { in vtd_iova_to_slpte()
1214 slpte, is_write, pasid); in vtd_iova_to_slpte()
1217 if (vtd_slpte_nonzero_rsvd(slpte, level)) { in vtd_iova_to_slpte()
1221 __func__, iova, level, slpte, pasid); in vtd_iova_to_slpte()
1225 if (vtd_is_last_pte(slpte, level)) { in vtd_iova_to_slpte()
1226 *slptep = slpte; in vtd_iova_to_slpte()
1230 addr = vtd_get_pte_addr(slpte, aw_bits); in vtd_iova_to_slpte()
1356 uint64_t slpte; in vtd_page_walk_level() local
1372 slpte = vtd_get_pte(addr, offset); in vtd_page_walk_level()
1374 if (slpte == (uint64_t)-1) { in vtd_page_walk_level()
1379 if (vtd_slpte_nonzero_rsvd(slpte, level)) { in vtd_page_walk_level()
1385 read_cur = read && (slpte & VTD_SL_R); in vtd_page_walk_level()
1386 write_cur = write && (slpte & VTD_SL_W); in vtd_page_walk_level()
1395 if (!vtd_is_last_pte(slpte, level) && entry_valid) { in vtd_page_walk_level()
1400 ret = vtd_page_walk_level(vtd_get_pte_addr(slpte, info->aw), in vtd_page_walk_level()
1417 event.entry.translated_addr = vtd_get_pte_addr(slpte, info->aw); in vtd_page_walk_level()