summaryrefslogtreecommitdiffstats
path: root/sys/boot/sparc64/loader/main.c
diff options
context:
space:
mode:
authorjake <jake@FreeBSD.org>2003-06-15 19:16:43 +0000
committerjake <jake@FreeBSD.org>2003-06-15 19:16:43 +0000
commitfc203320de2c12fe6f2f78957ade3053f9a1c9ff (patch)
tree3eda775fb2ccbd1a9aaabd707cedeba5c7ae185b /sys/boot/sparc64/loader/main.c
parent6fcb2a22628b84d9feb0766005f520271e87b174 (diff)
downloadFreeBSD-src-fc203320de2c12fe6f2f78957ade3053f9a1c9ff.zip
FreeBSD-src-fc203320de2c12fe6f2f78957ade3053f9a1c9ff.tar.gz
Remember to release the loader's heap.
Reviewed by: tmm
Diffstat (limited to 'sys/boot/sparc64/loader/main.c')
-rw-r--r--sys/boot/sparc64/loader/main.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/sys/boot/sparc64/loader/main.c b/sys/boot/sparc64/loader/main.c
index 08c0d96..63d591d 100644
--- a/sys/boot/sparc64/loader/main.c
+++ b/sys/boot/sparc64/loader/main.c
@@ -222,6 +222,7 @@ __elfN(exec)(struct preloaded_file *fp)
{
struct file_metadata *fmp;
vm_offset_t mdp;
+ Elf_Addr entry;
Elf_Ehdr *e;
int error;
@@ -238,7 +239,12 @@ __elfN(exec)(struct preloaded_file *fp)
pmap_print_tlb('i');
pmap_print_tlb('d');
#endif
- ((kernel_entry_t *)e->e_entry)(mdp, 0, 0, 0, openfirmware);
+
+ entry = e->e_entry;
+
+ OF_release(heapva, HEAPSZ);
+
+ ((kernel_entry_t *)entry)(mdp, 0, 0, 0, openfirmware);
panic("exec returned");
}
OpenPOWER on IntegriCloud