path: root/arch/x86/kernel/i387.c
diff options
authorJan Beulich <>2008-03-05 08:35:14 +0000
committerIngo Molnar <>2008-03-07 16:39:14 +0100
commit609b5297bcfb7b39b7a4137e9ec48407a8c96763 (patch)
tree9c0dc800d5dc69ef43412f3fbd796c0285a77a14 /arch/x86/kernel/i387.c
parente40cd10ccff3d9fbffd57b93780bee4b7b9bff51 (diff)
x86: fix merge mistake in i387.c
convert_fxsr_to_user() in 2.6.24's i387_32.c did this, and convert_to_fxsr() also does the inverse, so I assume it's an oversight that it is no longer being done. [ we encode it this way because there's no space for the 'FPU Last Instruction Opcode' (->fop) field in the legacy user_i387_ia32_struct that PTRACE_GETFPREGS/PTRACE_SETFPREGS uses. it's probably pure legacy - i'd be surprised if any user-space relied on the FPU Last Opcode in any way. But indeed we used to do it previously so the most conservative thing is to preserve that piece of information. ] Signed-off-by: Jan Beulich <> Signed-off-by: Ingo Molnar <>
Diffstat (limited to 'arch/x86/kernel/i387.c')
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/x86/kernel/i387.c b/arch/x86/kernel/i387.c
index 60fe80157569..d2e39e69aaf8 100644
--- a/arch/x86/kernel/i387.c
+++ b/arch/x86/kernel/i387.c
@@ -261,7 +261,7 @@ static void convert_from_fxsr(struct user_i387_ia32_struct *env,
env->fip = fxsave->fip;
- env->fcs = fxsave->fcs;
+ env->fcs = (u16) fxsave->fcs | ((u32) fxsave->fop << 16);
env->foo = fxsave->foo;
env->fos = fxsave->fos;