Page MenuHomeFreeBSD

D45580.diff
No OneTemporary

D45580.diff

diff --git a/sys/riscv/riscv/pmap.c b/sys/riscv/riscv/pmap.c
--- a/sys/riscv/riscv/pmap.c
+++ b/sys/riscv/riscv/pmap.c
@@ -3291,12 +3291,14 @@
if ((new_l2 & PTE_SW_WIRED) != 0 && pmap != kernel_pmap) {
uwptpg = vm_page_alloc_noobj(VM_ALLOC_WIRED);
if (uwptpg == NULL) {
+ pmap_abort_ptp(pmap, va, l2pg);
return (KERN_RESOURCE_SHORTAGE);
}
uwptpg->pindex = pmap_l2_pindex(va);
if (pmap_insert_pt_page(pmap, uwptpg, true, false)) {
vm_page_unwire_noq(uwptpg);
vm_page_free(uwptpg);
+ pmap_abort_ptp(pmap, va, l2pg);
return (KERN_RESOURCE_SHORTAGE);
}
pmap_resident_count_inc(pmap, 1);

File Metadata

Mime Type
text/plain
Expires
Mon, Jul 13, 8:42 AM (14 h, 40 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
35029106
Default Alt Text
D45580.diff (627 B)

Event Timeline