* Release a page table page reference after a failed attempt to create a * mapping. */
| 1734 | * mapping. |
| 1735 | */ |
| 1736 | static void |
| 1737 | pmap_abort_ptp(pmap_t pmap, vm_offset_t va, vm_page_t mpte) |
| 1738 | { |
| 1739 | struct spglist free; |
| 1740 | |
| 1741 | SLIST_INIT(&free); |
| 1742 | if (pmap_unwire_l3(pmap, va, mpte, &free)) { |
| 1743 | /* |
| 1744 | * Although "va" was never mapped, the TLB could nonetheless |
| 1745 | * have intermediate entries that refer to the freed page |
| 1746 | * table pages. Invalidate those entries. |
| 1747 | * |
| 1748 | * XXX redundant invalidation (See _pmap_unwire_l3().) |
| 1749 | */ |
| 1750 | pmap_invalidate_page(pmap, va); |
| 1751 | vm_page_free_pages_toq(&free, true); |
| 1752 | } |
| 1753 | } |
| 1754 | |
| 1755 | void |
| 1756 | pmap_pinit0(pmap_t pmap) |
no test coverage detected