* Release a page table page reference after a failed attempt to create a * mapping. */
| 2015 | * mapping. |
| 2016 | */ |
| 2017 | static void |
| 2018 | pmap_abort_ptp(pmap_t pmap, vm_offset_t va, vm_page_t mpte) |
| 2019 | { |
| 2020 | struct spglist free; |
| 2021 | |
| 2022 | SLIST_INIT(&free); |
| 2023 | if (pmap_unwire_ptp(pmap, mpte, &free)) { |
| 2024 | /* |
| 2025 | * Although "va" was never mapped, paging-structure caches |
| 2026 | * could nonetheless have entries that refer to the freed |
| 2027 | * page table pages. Invalidate those entries. |
| 2028 | */ |
| 2029 | pmap_invalidate_page_int(pmap, va); |
| 2030 | vm_page_free_pages_toq(&free, true); |
| 2031 | } |
| 2032 | } |
| 2033 | |
| 2034 | /* |
| 2035 | * Initialize the pmap for the swapper process. |
no test coverage detected