From a72523c6570b17311babc105edc7105bc0dce4aa Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Wed, 14 Oct 2009 01:24:38 +0200 Subject: Fix yet more allocation failures during gc kern/zalloc.c (zone_gc): Allocate and free two vm_map_kentry_zone elements to make sure the gc will be able to allocate two in vm_map_delete. --- kern/zalloc.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/kern/zalloc.c b/kern/zalloc.c index 1a70e4c..f2904e4 100644 --- a/kern/zalloc.c +++ b/kern/zalloc.c @@ -835,7 +835,10 @@ static void zone_gc(void) * hang because zone_map is already locked by vm_map_delete */ extern zone_t vm_map_kentry_zone; /* zone for kernel entry structures */ - zfree(vm_map_kentry_zone, zalloc(vm_map_kentry_zone)); + vm_offset_t entry1 = zalloc(vm_map_kentry_zone), + entry2 = zalloc(vm_map_kentry_zone); + zfree(vm_map_kentry_zone, entry1); + zfree(vm_map_kentry_zone, entry2); kmem_free(zone_map, free_addr, PAGE_SIZE); } -- cgit v1.2.3