Skip to contentSkip to conversation

x86/fpu changes for v3.4

GIT PULL Ingo Molnar 1 participant 1 message Mar 19, 2012

Subsystems (4)
lore
Share & tools
lore
#0 lore raw

Linus,

Please pull the latest x86-fpu-for-linus git tree from:

git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86-fpu-for-linus

HEAD: 1361b83a13d4d92e53fbb6c877528713e118b821 i387: Split up <asm/i387.h> into exported and internal interfaces

Thanks,

Ingo

------------------>
Linus Torvalds (2):
i387: Uninline the generic FP helpers that we expose to kernel modules
i387: Split up <asm/i387.h> into exported and internal interfaces

 arch/x86/ia32/ia32_signal.c         |    1 +
 arch/x86/include/asm/fpu-internal.h |  520 ++++++++++++++++++++++++++++++
 arch/x86/include/asm/i387.h         |  590 +----------------------------------
 arch/x86/kernel/cpu/common.c        |    3 +-
 arch/x86/kernel/i387.c              |   83 +++++-
 arch/x86/kernel/process.c           |    1 +
 arch/x86/kernel/process_32.c        |    1 +
 arch/x86/kernel/process_64.c        |    1 +
 arch/x86/kernel/ptrace.c            |    1 +
 arch/x86/kernel/signal.c            |    1 +
 arch/x86/kernel/traps.c             |    1 +
 arch/x86/kernel/xsave.c             |    1 +
 arch/x86/kvm/vmx.c                  |    2 +-
 arch/x86/kvm/x86.c                  |    1 +
 arch/x86/power/cpu.c                |    1 +
 15 files changed, 624 insertions(+), 584 deletions(-)
 create mode 100644 arch/x86/include/asm/fpu-internal.h
arch/x86/ia32/ia32_signal.c +1 -0
index 6557769..5563ba1 100644
@@ -24,6 +24,7 @@
 #include <asm/ucontext.h>
 #include <asm/uaccess.h>
 #include <asm/i387.h>
+#include <asm/fpu-internal.h>
 #include <asm/ptrace.h>
 #include <asm/ia32_unistd.h>
 #include <asm/user32.h>
arch/x86/include/asm/fpu-internal.h new file +520 -0

520 lines not on this page · raw message

arch/x86/include/asm/i387.h +10 -580

612 lines not on this page · raw message

arch/x86/kernel/cpu/common.c +1 -2
index c0f7d68..89620b1 100644
@@ -28,6 +28,7 @@
 #include <asm/apic.h>
 #include <asm/desc.h>
 #include <asm/i387.h>
+#include <asm/fpu-internal.h>
 #include <asm/mtrr.h>
 #include <linux/numa.h>
 #include <asm/asm.h>
@@ -1045,7 +1046,6 @@ DEFINE_PER_CPU(char *, irq_stack_ptr) =
 DEFINE_PER_CPU(unsigned int, irq_count) = -1;
 
 DEFINE_PER_CPU(struct task_struct *, fpu_owner_task);
-EXPORT_PER_CPU_SYMBOL(fpu_owner_task);
 
 /*
  * Special IST stacks which the CPU switches to when it calls
@@ -1115,7 +1115,6 @@ void debug_stack_reset(void)
 DEFINE_PER_CPU(struct task_struct *, current_task) = &init_task;
 EXPORT_PER_CPU_SYMBOL(current_task);
 DEFINE_PER_CPU(struct task_struct *, fpu_owner_task);
-EXPORT_PER_CPU_SYMBOL(fpu_owner_task);
 
 #ifdef CONFIG_CC_STACKPROTECTOR
 DEFINE_PER_CPU_ALIGNED(struct stack_canary, stack_canary);
arch/x86/kernel/i387.c +82 -1

101 lines not on this page · raw message

arch/x86/kernel/process.c +1 -0
index 15763af..c38d84e 100644
@@ -21,6 +21,7 @@
 #include <asm/idle.h>
 #include <asm/uaccess.h>
 #include <asm/i387.h>
+#include <asm/fpu-internal.h>
 #include <asm/debugreg.h>
 
 struct kmem_cache *task_xstate_cachep;
arch/x86/kernel/process_32.c +1 -0
index c08d1ff..ee32dee 100644
@@ -45,6 +45,7 @@
 #include <asm/ldt.h>
 #include <asm/processor.h>
 #include <asm/i387.h>
+#include <asm/fpu-internal.h>
 #include <asm/desc.h>
 #ifdef CONFIG_MATH_EMULATION
 #include <asm/math_emu.h>
arch/x86/kernel/process_64.c +1 -0
index cfa5c90..5bad3c7 100644
@@ -43,6 +43,7 @@
 #include <asm/system.h>
 #include <asm/processor.h>
 #include <asm/i387.h>
+#include <asm/fpu-internal.h>
 #include <asm/mmu_context.h>
 #include <asm/prctl.h>
 #include <asm/desc.h>
arch/x86/kernel/ptrace.c +1 -0
index 5026738..78f05e4 100644
@@ -27,6 +27,7 @@
 #include <asm/system.h>
 #include <asm/processor.h>
 #include <asm/i387.h>
+#include <asm/fpu-internal.h>
 #include <asm/debugreg.h>
 #include <asm/ldt.h>
 #include <asm/desc.h>
arch/x86/kernel/signal.c +1 -0
index 46a01bd..25edcfc 100644
@@ -24,6 +24,7 @@
 #include <asm/processor.h>
 #include <asm/ucontext.h>
 #include <asm/i387.h>
+#include <asm/fpu-internal.h>
 #include <asm/vdso.h>
 #include <asm/mce.h>
 
arch/x86/kernel/traps.c +1 -0
index 4bbe04d..ec61d4c 100644
@@ -54,6 +54,7 @@
 #include <asm/traps.h>
 #include <asm/desc.h>
 #include <asm/i387.h>
+#include <asm/fpu-internal.h>
 #include <asm/mce.h>
 
 #include <asm/mach_traps.h>
arch/x86/kernel/xsave.c +1 -0
index 7110911..e62728e 100644
@@ -6,6 +6,7 @@
 #include <linux/bootmem.h>
 #include <linux/compat.h>
 #include <asm/i387.h>
+#include <asm/fpu-internal.h>
 #ifdef CONFIG_IA32_EMULATION
 #include <asm/sigcontext32.h>
 #endif
arch/x86/kvm/vmx.c +1 -1
index 3b4c8d8..246490f 100644
@@ -1457,7 +1457,7 @@ static void __vmx_load_host_state(struct vcpu_vmx *vmx)
 #ifdef CONFIG_X86_64
 	wrmsrl(MSR_KERNEL_GS_BASE, vmx->msr_host_kernel_gs_base);
 #endif
-	if (__thread_has_fpu(current))
+	if (user_has_fpu())
 		clts();
 	load_gdt(&__get_cpu_var(host_gdt));
 }
arch/x86/kvm/x86.c +1 -0
index 9cbfc06..b937b61 100644
@@ -57,6 +57,7 @@
 #include <asm/mtrr.h>
 #include <asm/mce.h>
 #include <asm/i387.h>
+#include <asm/fpu-internal.h> /* Ugh! */
 #include <asm/xcr.h>
 #include <asm/pvclock.h>
 #include <asm/div64.h>
arch/x86/power/cpu.c +1 -0
index f10c0af..4889655 100644
@@ -20,6 +20,7 @@
 #include <asm/xcr.h>
 #include <asm/suspend.h>
 #include <asm/debugreg.h>
+#include <asm/fpu-internal.h> /* pcntxt_mask */
 
 #ifdef CONFIG_X86_32
 static struct saved_context saved_context;