From 56c58f223a8e91bedd7fae725c3152c6758fd4df Mon Sep 17 00:00:00 2001 From: John David Anglin Date: Sun, 25 Nov 2012 21:39:00 +0000 Subject: [PATCH] --- yaml --- r: 348999 b: refs/heads/master c: ad30f3ff3deb4037f2beea15812d01d795f8b3cc h: refs/heads/master i: 348997: 85749d8121abd3a41b904292a9c54d8e214c3416 348995: 59f88c14b3b2a5ee27ce0d603d31184c94cb3a20 348991: 08eaf3b5c02c43395194228c2380daf6a2e90039 v: v3 --- [refs] | 2 +- trunk/arch/parisc/kernel/signal.c | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 8415edb8eb29..ed946ae5c27f 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 34360f080cb5848990576e1465d2d01a3c261762 +refs/heads/master: ad30f3ff3deb4037f2beea15812d01d795f8b3cc diff --git a/trunk/arch/parisc/kernel/signal.c b/trunk/arch/parisc/kernel/signal.c index 537996955998..fd051705a407 100644 --- a/trunk/arch/parisc/kernel/signal.c +++ b/trunk/arch/parisc/kernel/signal.c @@ -190,8 +190,10 @@ get_sigframe(struct k_sigaction *ka, unsigned long sp, size_t frame_size) DBG(1,"get_sigframe: ka = %#lx, sp = %#lx, frame_size = %#lx\n", (unsigned long)ka, sp, frame_size); + /* Align alternate stack and reserve 64 bytes for the signal + handler's frame marker. */ if ((ka->sa.sa_flags & SA_ONSTACK) != 0 && ! sas_ss_flags(sp)) - sp = current->sas_ss_sp; /* Stacks grow up! */ + sp = (current->sas_ss_sp + 0x7f) & ~0x3f; /* Stacks grow up! */ DBG(1,"get_sigframe: Returning sp = %#lx\n", (unsigned long)sp); return (void __user *) sp; /* Stacks grow up. Fun. */