aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/ia32
diff options
context:
space:
mode:
authorRoland McGrath <roland@redhat.com>2008-01-30 07:31:50 -0500
committerIngo Molnar <mingo@elte.hu>2008-01-30 07:31:50 -0500
commit4421011120b2304e5c248ae4165a2704588aedf1 (patch)
treeb715f9bd5fbe3493a2c6a14d0c30832c42832e62 /arch/x86/ia32
parentb7b71725fb9584454bfe5f231223bd63421798fb (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/Makefile2
-rw-r--r--arch/x86/ia32/ia32_signal.c5
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
5obj-$(CONFIG_IA32_EMULATION) := ia32entry.o sys_ia32.o ia32_signal.o \ 5obj-$(CONFIG_IA32_EMULATION) := ia32entry.o sys_ia32.o ia32_signal.o \
6 ia32_binfmt.o fpu32.o 6 ia32_binfmt.o
7 7
8sysv-$(CONFIG_SYSVIPC) := ipc32.o 8sysv-$(CONFIG_SYSVIPC) := ipc32.o
9obj-$(CONFIG_IA32_EMULATION) += $(sysv-y) 9obj-$(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 {