Page MenuHomeFreeBSD

D16085.id44722.diff
No OneTemporary

D16085.id44722.diff

Index: sys/i386/i386/pmap.c
===================================================================
--- sys/i386/i386/pmap.c
+++ sys/i386/i386/pmap.c
@@ -1684,7 +1684,8 @@
&pa))
goto retry;
m = PHYS_TO_VM_PAGE(pte & PG_FRAME);
- vm_page_hold(m);
+ if (m != NULL)
+ vm_page_hold(m);
}
}
}
Index: sys/vm/vm_page.c
===================================================================
--- sys/vm/vm_page.c
+++ sys/vm/vm_page.c
@@ -551,6 +551,9 @@
vm_paddr_t biggestsize, last_pa, pa;
u_long pagecount;
int biggestone, i, segind;
+#ifdef __i386__
+ long ii;
+#endif
biggestsize = 0;
biggestone = 0;
@@ -789,6 +792,13 @@
* Initialize the page structures and add every available page to the
* physical memory allocator's free lists.
*/
+#ifdef __i386__
+ for (ii = 0; ii < vm_page_array_size; ii++) {
+ m = &vm_page_array[ii];
+ vm_page_init_page(m, ii << PAGE_SHIFT, 0);
+ m->flags = PG_FICTITIOUS;
+ }
+#endif
vm_cnt.v_page_count = 0;
for (segind = 0; segind < vm_phys_nsegs; segind++) {
seg = &vm_phys_segs[segind];

File Metadata

Mime Type
text/plain
Expires
Sun, Feb 8, 11:16 PM (17 h, 14 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
28509149
Default Alt Text
D16085.id44722.diff (1 KB)

Event Timeline