summaryrefslogtreecommitdiffstats
path: root/sys/kern/link_elf_obj.c
diff options
context:
space:
mode:
authoralc <alc@FreeBSD.org>2005-08-28 05:38:40 +0000
committeralc <alc@FreeBSD.org>2005-08-28 05:38:40 +0000
commit5346dda8127c5d410c4b143e402a04ee84dce2e5 (patch)
treec758b18bbdcc11d6023c4686c3b8c9557b90bf55 /sys/kern/link_elf_obj.c
parentdfddcf2af4d45f1761ceec33ba7c2f9b393df571 (diff)
downloadFreeBSD-src-5346dda8127c5d410c4b143e402a04ee84dce2e5.zip
FreeBSD-src-5346dda8127c5d410c4b143e402a04ee84dce2e5.tar.gz
Handle vm_map_wire()'s failure.
Diffstat (limited to 'sys/kern/link_elf_obj.c')
-rw-r--r--sys/kern/link_elf_obj.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/sys/kern/link_elf_obj.c b/sys/kern/link_elf_obj.c
index da3ea77..a338610 100644
--- a/sys/kern/link_elf_obj.c
+++ b/sys/kern/link_elf_obj.c
@@ -650,9 +650,13 @@ link_elf_load_file(linker_class_t cls, const char *filename,
}
/* Wire the pages */
- vm_map_wire(kernel_map, mapbase,
+ error = vm_map_wire(kernel_map, mapbase,
mapbase + round_page(mapsize),
VM_MAP_WIRE_SYSTEM|VM_MAP_WIRE_NOHOLES);
+ if (error != KERN_SUCCESS) {
+ error = ENOMEM;
+ goto out;
+ }
/* Inform the kld system about the situation */
lf->address = ef->address = (caddr_t)mapbase;
OpenPOWER on IntegriCloud