All of lore.kernel.org
 help / color / mirror / Atom feed
From: Hiroshi Shimamoto <h-shimamoto@ct.jp.nec.com>
To: linux-tip-commits@vger.kernel.org
Cc: linux-kernel@vger.kernel.org, h-shimamoto@ct.jp.nec.com,
	hpa@zytor.com, mingo@redhat.com, efault@gmx.de,
	jaswinder@kernel.org, tglx@linutronix.de, mingo@elte.hu
Subject: [tip:x86/signal] x86, signals: fix xine & firefox bustage
Date: Tue, 3 Mar 2009 08:06:31 GMT	[thread overview]
Message-ID: <tip-2505170211f7630361a852e25b60f4df4c878daa@git.kernel.org> (raw)
In-Reply-To: <49AC85C1.7060600@ct.jp.nec.com>

Commit-ID:  2505170211f7630361a852e25b60f4df4c878daa
Gitweb:     http://git.kernel.org/tip/2505170211f7630361a852e25b60f4df4c878daa
Author:     "Hiroshi Shimamoto" <h-shimamoto@ct.jp.nec.com>
AuthorDate: Mon, 2 Mar 2009 17:20:01 -0800
Commit:     Ingo Molnar <mingo@elte.hu>
CommitDate: Tue, 3 Mar 2009 09:03:12 +0100

x86, signals: fix xine & firefox bustage

Impact: fix bad frame in rt_sigreturn on 64-bit

After commit 97286a2b64725aac2d584ddd1f94871f9991d5a1 some applications
fail to return from signal handler:

[  145.150133] firefox[3250] bad frame in rt_sigreturn frame:00007f902b44eb28 ip:352e80b307 sp:7f902b44ef70 orax:ffffffffffffffff in libpthread-2.9.so[352e800000+17000]
[  665.519017] firefox[5420] bad frame in rt_sigreturn frame:00007faa8deaeb28 ip:352e80b307 sp:7faa8deaef70 orax:ffffffffffffffff in libpthread-2.9.so[352e800000+17000]

The root cause is forgetting to keep 64 byte aligned value of
fpstate for next stack pointer calculation.

Reported-by: Jaswinder Singh Rajput <jaswinder@kernel.org>
Reported-by: Mike Galbraith <efault@gmx.de>
Signed-off-by: Hiroshi Shimamoto <h-shimamoto@ct.jp.nec.com>
LKML-Reference: <49AC85C1.7060600@ct.jp.nec.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>


---
 arch/x86/kernel/signal.c |    9 ++++-----
 1 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/arch/x86/kernel/signal.c b/arch/x86/kernel/signal.c
index dde3f2a..d2cc642 100644
--- a/arch/x86/kernel/signal.c
+++ b/arch/x86/kernel/signal.c
@@ -240,11 +240,10 @@ get_sigframe(struct k_sigaction *ka, struct pt_regs *regs, size_t frame_size,
 
 	if (used_math()) {
 		sp -= sig_xstate_size;
-#ifdef CONFIG_X86_32
-		*fpstate = (void __user *) sp;
-#else /* !CONFIG_X86_32 */
-		*fpstate = (void __user *)round_down(sp, 64);
-#endif /* CONFIG_X86_32 */
+#ifdef CONFIG_X86_64
+		sp = round_down(sp, 64);
+#endif /* CONFIG_X86_64 */
+		*fpstate = (void __user *)sp;
 
 		if (save_i387_xstate(*fpstate) < 0)
 			return (void __user *)-1L;

      parent reply	other threads:[~2009-03-03  8:08 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-03-02  9:04 x86-tip: xine bustage bisection fingers commit 97286a2b64725aac2d584ddd1f94871f9991d5a1 Mike Galbraith
2009-03-02  9:33 ` Ingo Molnar
2009-03-02 18:15   ` Hiroshi Shimamoto
2009-03-03  1:20   ` Hiroshi Shimamoto
2009-03-03  6:04     ` Mike Galbraith
2009-03-03  8:03       ` Ingo Molnar
2009-03-03  8:06     ` Hiroshi Shimamoto [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=tip-2505170211f7630361a852e25b60f4df4c878daa@git.kernel.org \
    --to=h-shimamoto@ct.jp.nec.com \
    --cc=efault@gmx.de \
    --cc=hpa@zytor.com \
    --cc=jaswinder@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tip-commits@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=mingo@redhat.com \
    --cc=tglx@linutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.