summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormarcel <marcel@FreeBSD.org>2003-05-26 22:54:18 +0000
committermarcel <marcel@FreeBSD.org>2003-05-26 22:54:18 +0000
commit2e3e224616c11e9dd11191a2aec4764f74a4ff70 (patch)
tree0c73bd2f55103db9df29a29c1f103a320fa1c997
parent40cb42997301273b06ccf717f0acd345b8c18b9a (diff)
downloadFreeBSD-src-2e3e224616c11e9dd11191a2aec4764f74a4ff70.zip
FreeBSD-src-2e3e224616c11e9dd11191a2aec4764f74a4ff70.tar.gz
Revision 1.99 of this file changed the allocation request from
VM_ALLOC_INTERRUPT to VM_ALLOC_SYSTEM. There was no mention of this in commit log as it was considered harmless. Guess what: it does harm. WITNESS showed that we can not safely grab the page queue lock in vm_page_alloc() in all cases as we may have to sleep on it. Revert the request to VM_ALLOC_INTERRUPT to circumvent this. We panic if vm_page_alloc returns 0. I'm not entirely happy about this, but we have bigger fish to fry. Approved by: re@ (blanket)
-rw-r--r--sys/ia64/ia64/pmap.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/ia64/ia64/pmap.c b/sys/ia64/ia64/pmap.c
index 5f75500..d99d37e 100644
--- a/sys/ia64/ia64/pmap.c
+++ b/sys/ia64/ia64/pmap.c
@@ -921,7 +921,7 @@ pmap_growkernel(vm_offset_t addr)
panic("pmap_growkernel: out of kernel address space");
nkpg = vm_page_alloc(NULL, nkpt,
- VM_ALLOC_NOOBJ | VM_ALLOC_SYSTEM | VM_ALLOC_WIRED);
+ VM_ALLOC_NOOBJ | VM_ALLOC_INTERRUPT | VM_ALLOC_WIRED);
if (!nkpg)
panic("pmap_growkernel: no memory to grow kernel");
OpenPOWER on IntegriCloud