diff options
author | Roland McGrath <roland@redhat.com> | 2008-01-30 13:31:50 +0100 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-01-30 13:31:50 +0100 |
commit | 4421011120b2304e5c248ae4165a2704588aedf1 (patch) | |
tree | b715f9bd5fbe3493a2c6a14d0c30832c42832e62 /arch/x86/ia32 | |
parent | b7b71725fb9584454bfe5f231223bd63421798fb (diff) | |
download | blackbird-op-linux-4421011120b2304e5c248ae4165a2704588aedf1.tar.gz blackbird-op-linux-4421011120b2304e5c248ae4165a2704588aedf1.zip |
x86: x86 i387 user_regset
This revamps the i387 code to be shared across 32-bit, 64-bit,
and 32-on-64. It does so by consolidating the code in one place
based on the user_regset accessor interfaces. This switches
32-bit to using the i387_64.h header and 64-bit to using the
i387.c that was previously i387_32.c, but that's what took the
least cleanup in each file. Here i387.h is stubbed to always
include i387_64.h rather than renaming the file, to keep this
diff smaller and easier to read.
Signed-off-by: Roland McGrath <roland@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'arch/x86/ia32')
-rw-r--r-- | arch/x86/ia32/Makefile | 2 | ||||
-rw-r--r-- | arch/x86/ia32/ia32_signal.c | 5 |
2 files changed, 3 insertions, 4 deletions
diff --git a/arch/x86/ia32/Makefile b/arch/x86/ia32/Makefile index ec71cfeac87e..93a6fda65f49 100644 --- a/arch/x86/ia32/Makefile +++ b/arch/x86/ia32/Makefile @@ -3,7 +3,7 @@ # obj-$(CONFIG_IA32_EMULATION) := ia32entry.o sys_ia32.o ia32_signal.o \ - ia32_binfmt.o fpu32.o + ia32_binfmt.o sysv-$(CONFIG_SYSVIPC) := ipc32.o obj-$(CONFIG_IA32_EMULATION) += $(sysv-y) diff --git a/arch/x86/ia32/ia32_signal.c b/arch/x86/ia32/ia32_signal.c index 0e24e3fda3d7..0a34c24f19e5 100644 --- a/arch/x86/ia32/ia32_signal.c +++ b/arch/x86/ia32/ia32_signal.c @@ -29,7 +29,6 @@ #include <asm/ia32_unistd.h> #include <asm/user32.h> #include <asm/sigcontext32.h> -#include <asm/fpu32.h> #include <asm/proto.h> #include <asm/vdso.h> @@ -258,7 +257,7 @@ static int ia32_restore_sigcontext(struct pt_regs *regs, if (buf) { if (!access_ok(VERIFY_READ, buf, sizeof(*buf))) goto badframe; - err |= restore_i387_ia32(current, buf, 0); + err |= restore_i387_ia32(buf); } else { struct task_struct *me = current; @@ -377,7 +376,7 @@ static int ia32_setup_sigcontext(struct sigcontext_ia32 __user *sc, err |= __put_user((u32)regs->flags, &sc->flags); err |= __put_user((u32)regs->sp, &sc->sp_at_signal); - tmp = save_i387_ia32(current, fpstate, regs, 0); + tmp = save_i387_ia32(fpstate); if (tmp < 0) err = -EFAULT; else { |