x86: signal: use 16 bytes boundary for rt_sigframe
authorHiroshi Shimamoto <h-shimamoto@ct.jp.nec.com>
Fri, 27 Feb 2009 18:29:09 +0000 (10:29 -0800)
committerIngo Molnar <mingo@elte.hu>
Sat, 28 Feb 2009 08:17:30 +0000 (09:17 +0100)
Impact: cleanup

Supporting xsave/xrestore introduces 64 bytes boundary for save_i387_xstate().
16 bytes boundary is OK for rt_sigframe.

Signed-off-by: Hiroshi Shimamoto <h-shimamoto@ct.jp.nec.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/kernel/signal.c

index 82d37c77b0fb9c69bf6cb2f4693e22f38d250272..89ef90df985fd0fcbd8ed817cbb819ba7ba9615d 100644 (file)
@@ -409,15 +409,13 @@ get_sigframe(struct k_sigaction *ka, struct pt_regs *regs, size_t frame_size,
        if (used_math()) {
                sp -= sig_xstate_size;
                *fpstate = (void __user *)round_down(sp, 64);
+
                if (save_i387_xstate(*fpstate) < 0)
                        return (void __user *) -1L;
-
-               sp -= frame_size;
-               return (void __user *)round_down(sp, 16) - 8;
        }
 
        sp -= frame_size;
-       return (void __user *)round_down(sp, 64) - 8;
+       return (void __user *)round_down(sp, 16) - 8;
 }
 
 static int __setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,