* Release a page table page reference after a failed attempt to create a * mapping. */
| 4045 | * mapping. |
| 4046 | */ |
| 4047 | static void |
| 4048 | pmap_abort_ptp(pmap_t pmap, vm_offset_t va, vm_page_t mpte) |
| 4049 | { |
| 4050 | struct spglist free; |
| 4051 | |
| 4052 | SLIST_INIT(&free); |
| 4053 | if (pmap_unwire_ptp(pmap, va, mpte, &free)) { |
| 4054 | /* |
| 4055 | * Although "va" was never mapped, paging-structure caches |
| 4056 | * could nonetheless have entries that refer to the freed |
| 4057 | * page table pages. Invalidate those entries. |
| 4058 | */ |
| 4059 | pmap_invalidate_page(pmap, va); |
| 4060 | vm_page_free_pages_toq(&free, true); |
| 4061 | } |
| 4062 | } |
| 4063 | |
| 4064 | void |
| 4065 | pmap_pinit0(pmap_t pmap) |
no test coverage detected