From 7ce535925ce9ddd608adfa6e644e3c360af38859 Mon Sep 17 00:00:00 2001 From: Marcel Moolenaar Date: Mon, 5 Nov 2001 05:55:33 +0000 Subject: [PATCH] Don't pass os_boot_rendez directly to SAL_SET_VECTORS, because it's actually the address of the function descriptor. The fdesc has both the address of the function and it's corresponding gp value. Now that we have a gp value, use it instead of passing 0. --- sys/ia64/ia64/sal.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sys/ia64/ia64/sal.c b/sys/ia64/ia64/sal.c index ef591156695..bc435754768 100644 --- a/sys/ia64/ia64/sal.c +++ b/sys/ia64/ia64/sal.c @@ -91,6 +91,7 @@ ia64_sal_init(struct sal_system_table *saltab) case 5: { struct sal_ap_wakeup_descriptor *dp; struct ia64_sal_result sal; + struct ia64_fdesc *fptr = (void*)os_boot_rendez; int ipi; dp = (struct sal_ap_wakeup_descriptor*)p; @@ -105,7 +106,7 @@ ia64_sal_init(struct sal_system_table *saltab) sal = ia64_sal_entry(SAL_SET_VECTORS, SAL_OS_BOOT_RENDEZ, - ia64_tpa((vm_offset_t)os_boot_rendez), 0, 0, + ia64_tpa(fptr->func), ia64_tpa(fptr->gp), 0, 0, 0, 0); mp_hardware = 1;