diff options
author | Roland McGrath <roland@redhat.com> | 2008-01-30 07:31:50 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-01-30 07:31:50 -0500 |
commit | 4421011120b2304e5c248ae4165a2704588aedf1 (patch) | |
tree | b715f9bd5fbe3493a2c6a14d0c30832c42832e62 /arch/x86/ia32 | |
parent | b7b71725fb9584454bfe5f231223bd63421798fb (diff) |
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 @@ | |||
3 | # | 3 | # |
4 | 4 | ||
5 | obj-$(CONFIG_IA32_EMULATION) := ia32entry.o sys_ia32.o ia32_signal.o \ | 5 | obj-$(CONFIG_IA32_EMULATION) := ia32entry.o sys_ia32.o ia32_signal.o \ |
6 | ia32_binfmt.o fpu32.o | 6 | ia32_binfmt.o |
7 | 7 | ||
8 | sysv-$(CONFIG_SYSVIPC) := ipc32.o | 8 | sysv-$(CONFIG_SYSVIPC) := ipc32.o |
9 | obj-$(CONFIG_IA32_EMULATION) += $(sysv-y) | 9 | 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 @@ | |||
29 | #include <asm/ia32_unistd.h> | 29 | #include <asm/ia32_unistd.h> |
30 | #include <asm/user32.h> | 30 | #include <asm/user32.h> |
31 | #include <asm/sigcontext32.h> | 31 | #include <asm/sigcontext32.h> |
32 | #include <asm/fpu32.h> | ||
33 | #include <asm/proto.h> | 32 | #include <asm/proto.h> |
34 | #include <asm/vdso.h> | 33 | #include <asm/vdso.h> |
35 | 34 | ||
@@ -258,7 +257,7 @@ static int ia32_restore_sigcontext(struct pt_regs *regs, | |||
258 | if (buf) { | 257 | if (buf) { |
259 | if (!access_ok(VERIFY_READ, buf, sizeof(*buf))) | 258 | if (!access_ok(VERIFY_READ, buf, sizeof(*buf))) |
260 | goto badframe; | 259 | goto badframe; |
261 | err |= restore_i387_ia32(current, buf, 0); | 260 | err |= restore_i387_ia32(buf); |
262 | } else { | 261 | } else { |
263 | struct task_struct *me = current; | 262 | struct task_struct *me = current; |
264 | 263 | ||
@@ -377,7 +376,7 @@ static int ia32_setup_sigcontext(struct sigcontext_ia32 __user *sc, | |||
377 | err |= __put_user((u32)regs->flags, &sc->flags); | 376 | err |= __put_user((u32)regs->flags, &sc->flags); |
378 | err |= __put_user((u32)regs->sp, &sc->sp_at_signal); | 377 | err |= __put_user((u32)regs->sp, &sc->sp_at_signal); |
379 | 378 | ||
380 | tmp = save_i387_ia32(current, fpstate, regs, 0); | 379 | tmp = save_i387_ia32(fpstate); |
381 | if (tmp < 0) | 380 | if (tmp < 0) |
382 | err = -EFAULT; | 381 | err = -EFAULT; |
383 | else { | 382 | else { |