pp_pte
if (atomic_load_relaxed(&old_pp->pp_pte.pte_ptp) == ptp &&
atomic_load_relaxed(&old_pp->pp_pte.pte_va) == va) {
if (atomic_load_relaxed(&pp->pp_pte.pte_ptp) == ptp &&
atomic_load_relaxed(&pp->pp_pte.pte_va) == va) {
pp->pp_pte.pte_ptp = ptp;
pp->pp_pte.pte_va = va;
KASSERT(pp->pp_pte.pte_ptp == ptp);
KASSERT(pp->pp_pte.pte_va == va);
pp->pp_pte.pte_ptp = NULL;
pp->pp_pte.pte_va = 0;
KASSERT(pp->pp_pte.pte_ptp != ptp ||
pp->pp_pte.pte_va != va);
KASSERT(pp->pp_pte.pte_ptp != ptp ||
pp->pp_pte.pte_va != va);
KASSERT(pp->pp_pte.pte_ptp == ptp);
KASSERT(pp->pp_pte.pte_va == va);
pp->pp_pte.pte_ptp = NULL;
pp->pp_pte.pte_va = 0;
sum = (uintptr_t)atomic_load_relaxed(&pp->pp_pte.pte_va);
sum |= (uintptr_t)atomic_load_relaxed(&pp->pp_pte.pte_ptp);
KASSERTMSG(&pp->pp_pte == pvpte,
KASSERT(atomic_load_relaxed(&pp->pp_pte.pte_va) == 0);
KASSERT(atomic_load_relaxed(&pp->pp_pte.pte_ptp) == NULL);
new_pp->pp_pte.pte_ptp = NULL;
new_pp->pp_pte.pte_va = 0;
pp->pp_pte.pte_ptp = NULL;
pp->pp_pte.pte_va = 0;
return (bool)((vaddr_t)pp->pp_pte.pte_ptp | pp->pp_pte.pte_va);
return &pp->pp_pte;
if (pvpte == &pp->pp_pte) {