summaryrefslogtreecommitdiffstats
path: root/sys/ia64
diff options
context:
space:
mode:
authormarcel <marcel@FreeBSD.org>2004-07-25 07:07:09 +0000
committermarcel <marcel@FreeBSD.org>2004-07-25 07:07:09 +0000
commita16c034682b3e5ab7ed6f94313eb01a325be18ff (patch)
treedbeec2356a0e646fbceb74563491b3a62c3a19b6 /sys/ia64
parent824264d2f41fb870154a7927be3b02518c91e273 (diff)
downloadFreeBSD-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/ia64')
-rw-r--r--sys/ia64/ia64/sal.c8
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;
OpenPOWER on IntegriCloud