diff options
-rw-r--r-- | sys/vm/vm_glue.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/sys/vm/vm_glue.c b/sys/vm/vm_glue.c index 08927c41330..bf64a82c62d 100644 --- a/sys/vm/vm_glue.c +++ b/sys/vm/vm_glue.c @@ -232,7 +232,11 @@ vm_fork(p1, p2) /* * Allocate a wired-down (for now) pcb and kernel stack for the process */ +#ifdef pica + addr = kmem_alloc_upage(kernel_map, USPACE); +#else addr = kmem_alloc_pageable(kernel_map, USPACE); +#endif if (addr == 0) panic("vm_fork: no more kernel virtual memory"); vm_map_pageable(kernel_map, addr, addr + USPACE, FALSE); @@ -410,6 +414,10 @@ loop: p->p_pid, p->p_comm, p->p_addr, ppri, cnt.v_free_count); #endif +#ifdef pica + vm_map_pageable(kernel_map, (vm_offset_t)p->p_addr, + (vm_offset_t)p->p_addr + atop(USPACE), FALSE); +#endif swapin(p); goto loop; } |