diff options
-rw-r--r-- | sys/ia64/ia64/machdep.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/sys/ia64/ia64/machdep.c b/sys/ia64/ia64/machdep.c index 5f954fe..a113c9b 100644 --- a/sys/ia64/ia64/machdep.c +++ b/sys/ia64/ia64/machdep.c @@ -814,6 +814,11 @@ sendsig(sig_t catcher, int sig, sigset_t *mask, u_long code) sbs = (u_int64_t) p->p_sigstk.ss_sp; sfp = (struct sigframe *)((caddr_t)p->p_sigstk.ss_sp + p->p_sigstk.ss_size - rndfsize); + /* + * Align sp and bsp. + */ + sbs = (sbs + 15) & ~15; + sfp = (struct sigframe *)((u_int64_t)sfp & ~15); #if defined(COMPAT_43) || defined(COMPAT_SUNOS) p->p_sigstk.ss_flags |= SS_ONSTACK; #endif |