aboutsummaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorJake Burkholder <jake@FreeBSD.org>2003-06-15 19:16:43 +0000
committerJake Burkholder <jake@FreeBSD.org>2003-06-15 19:16:43 +0000
commitcaa4756af5b7ad90046f2f8426b8a12fbbff214c (patch)
tree3eda775fb2ccbd1a9aaabd707cedeba5c7ae185b /sys
parentdc81367d8d0ee35e9d1dc0003e28bb3aef38b055 (diff)
Notes
Diffstat (limited to 'sys')
-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 08c0d96c7c9e..63d591d9239a 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");
}