diff options
author | marcel <marcel@FreeBSD.org> | 2004-07-25 07:07:09 +0000 |
---|---|---|
committer | marcel <marcel@FreeBSD.org> | 2004-07-25 07:07:09 +0000 |
commit | a16c034682b3e5ab7ed6f94313eb01a325be18ff (patch) | |
tree | dbeec2356a0e646fbceb74563491b3a62c3a19b6 /sys | |
parent | 824264d2f41fb870154a7927be3b02518c91e273 (diff) | |
download | FreeBSD-src-a16c034682b3e5ab7ed6f94313eb01a325be18ff.zip FreeBSD-src-a16c034682b3e5ab7ed6f94313eb01a325be18ff.tar.gz |
Work-around a gcc code generation bug for function descriptors
references (target/16559). This fixes SMP configurations.
Obtained from: arun@
Diffstat (limited to 'sys')
-rw-r--r-- | sys/ia64/ia64/sal.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/sys/ia64/ia64/sal.c b/sys/ia64/ia64/sal.c index 24ae989..220910c 100644 --- a/sys/ia64/ia64/sal.c +++ b/sys/ia64/ia64/sal.c @@ -112,6 +112,7 @@ ia64_sal_init(struct sal_system_table *saltab) struct sal_ap_wakeup_descriptor *dp; #ifdef SMP struct ia64_sal_result result; + struct ia64_fdesc *fd; #endif dp = (struct sal_ap_wakeup_descriptor*)p; @@ -153,11 +154,10 @@ ia64_sal_init(struct sal_system_table *saltab) setup_ipi_vectors(dp->sale_vector & 0xf0); #ifdef SMP + fd = (struct ia64_fdesc *) os_boot_rendez; result = ia64_sal_entry(SAL_SET_VECTORS, - SAL_OS_BOOT_RENDEZ, - ia64_tpa(FDESC_FUNC(os_boot_rendez)), - ia64_tpa(FDESC_GP(os_boot_rendez)), - 0, 0, 0, 0); + SAL_OS_BOOT_RENDEZ, ia64_tpa(fd->func), + ia64_tpa(fd->gp), 0, 0, 0, 0); #endif break; |