diff options
author | alc <alc@FreeBSD.org> | 2005-08-28 05:38:40 +0000 |
---|---|---|
committer | alc <alc@FreeBSD.org> | 2005-08-28 05:38:40 +0000 |
commit | 5346dda8127c5d410c4b143e402a04ee84dce2e5 (patch) | |
tree | c758b18bbdcc11d6023c4686c3b8c9557b90bf55 /sys/kern/link_elf_obj.c | |
parent | dfddcf2af4d45f1761ceec33ba7c2f9b393df571 (diff) | |
download | FreeBSD-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.c | 6 |
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; |