These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / drivers / lguest / x86 / core.c
index 30f2aef..6a4cd77 100644 (file)
@@ -46,7 +46,7 @@
 #include <asm/setup.h>
 #include <asm/lguest.h>
 #include <asm/uaccess.h>
-#include <asm/i387.h>
+#include <asm/fpu/internal.h>
 #include <asm/tlbflush.h>
 #include "../lg.h"
 
@@ -251,7 +251,7 @@ void lguest_arch_run_guest(struct lg_cpu *cpu)
         * we set it now, so we can trap and pass that trap to the Guest if it
         * uses the FPU.
         */
-       if (cpu->ts && user_has_fpu())
+       if (cpu->ts && fpregs_active())
                stts();
 
        /*
@@ -283,7 +283,7 @@ void lguest_arch_run_guest(struct lg_cpu *cpu)
                wrmsr(MSR_IA32_SYSENTER_CS, __KERNEL_CS, 0);
 
        /* Clear the host TS bit if it was set above. */
-       if (cpu->ts && user_has_fpu())
+       if (cpu->ts && fpregs_active())
                clts();
 
        /*
@@ -297,12 +297,12 @@ void lguest_arch_run_guest(struct lg_cpu *cpu)
        /*
         * Similarly, if we took a trap because the Guest used the FPU,
         * we have to restore the FPU it expects to see.
-        * math_state_restore() may sleep and we may even move off to
+        * fpu__restore() may sleep and we may even move off to
         * a different CPU. So all the critical stuff should be done
         * before this.
         */
-       else if (cpu->regs->trapnum == 7 && !user_has_fpu())
-               math_state_restore();
+       else if (cpu->regs->trapnum == 7 && !fpregs_active())
+               fpu__restore(&current->thread.fpu);
 }
 
 /*H:130