mirror of
https://github.com/opnsense/src.git
synced 2026-06-11 09:41:03 -04:00
Simplify (and micro-optimize) pmap_unuse_pt(): Only one caller,
pmap_remove_pte(), passed NULL instead of the required page table page to pmap_unuse_pt(). Compute the necessary page table page in pmap_remove_pte(). Also, remove some unreachable code from pmap_remove_pte().
This commit is contained in:
parent
5515f48ce3
commit
6d66d714c7
2 changed files with 6 additions and 20 deletions
|
|
@ -986,10 +986,6 @@ pmap_unuse_pt(pmap_t pmap, vm_offset_t va, vm_page_t mpte)
|
|||
if (va >= VM_MAXUSER_ADDRESS)
|
||||
return 0;
|
||||
|
||||
if (mpte == NULL) {
|
||||
mpte = PHYS_TO_VM_PAGE(*pmap_pde(pmap, va));
|
||||
}
|
||||
|
||||
return pmap_unwire_pte_hold(pmap, va, mpte);
|
||||
}
|
||||
|
||||
|
|
@ -1467,7 +1463,7 @@ static int
|
|||
pmap_remove_pte(pmap_t pmap, pt_entry_t *ptq, vm_offset_t va)
|
||||
{
|
||||
pt_entry_t oldpte;
|
||||
vm_page_t m;
|
||||
vm_page_t m, mpte;
|
||||
|
||||
oldpte = pte_load_clear(ptq);
|
||||
if (oldpte & PG_W)
|
||||
|
|
@ -1496,10 +1492,9 @@ pmap_remove_pte(pmap_t pmap, pt_entry_t *ptq, vm_offset_t va)
|
|||
vm_page_flag_set(m, PG_REFERENCED);
|
||||
return pmap_remove_entry(pmap, m, va);
|
||||
} else {
|
||||
return pmap_unuse_pt(pmap, va, NULL);
|
||||
mpte = PHYS_TO_VM_PAGE(*pmap_pde(pmap, va));
|
||||
return pmap_unuse_pt(pmap, va, mpte);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -1048,18 +1048,10 @@ pmap_unwire_pte_hold(pmap_t pmap, vm_page_t m)
|
|||
static int
|
||||
pmap_unuse_pt(pmap_t pmap, vm_offset_t va, vm_page_t mpte)
|
||||
{
|
||||
unsigned ptepindex;
|
||||
pd_entry_t ptepa;
|
||||
|
||||
if (va >= VM_MAXUSER_ADDRESS)
|
||||
return 0;
|
||||
|
||||
if (mpte == NULL) {
|
||||
ptepindex = (va >> PDRSHIFT);
|
||||
ptepa = pmap->pm_pdir[ptepindex];
|
||||
mpte = PHYS_TO_VM_PAGE(ptepa);
|
||||
}
|
||||
|
||||
return pmap_unwire_pte_hold(pmap, mpte);
|
||||
}
|
||||
|
||||
|
|
@ -1601,7 +1593,7 @@ static int
|
|||
pmap_remove_pte(pmap_t pmap, pt_entry_t *ptq, vm_offset_t va)
|
||||
{
|
||||
pt_entry_t oldpte;
|
||||
vm_page_t m;
|
||||
vm_page_t m, mpte;
|
||||
|
||||
oldpte = pte_load_clear(ptq);
|
||||
if (oldpte & PG_W)
|
||||
|
|
@ -1630,10 +1622,9 @@ pmap_remove_pte(pmap_t pmap, pt_entry_t *ptq, vm_offset_t va)
|
|||
vm_page_flag_set(m, PG_REFERENCED);
|
||||
return pmap_remove_entry(pmap, m, va);
|
||||
} else {
|
||||
return pmap_unuse_pt(pmap, va, NULL);
|
||||
mpte = PHYS_TO_VM_PAGE(*pmap_pde(pmap, va));
|
||||
return pmap_unuse_pt(pmap, va, mpte);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
|||
Loading…
Reference in a new issue