aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/mips/kvm/locore.S2
-rw-r--r--arch/mips/kvm/mips.c6
2 files changed, 4 insertions, 4 deletions
diff --git a/arch/mips/kvm/locore.S b/arch/mips/kvm/locore.S
index d7279c03c517..4a68b176d6e4 100644
--- a/arch/mips/kvm/locore.S
+++ b/arch/mips/kvm/locore.S
@@ -434,7 +434,7 @@ __kvm_mips_return_to_guest:
434 /* Setup status register for running guest in UM */ 434 /* Setup status register for running guest in UM */
435 .set at 435 .set at
436 or v1, v1, (ST0_EXL | KSU_USER | ST0_IE) 436 or v1, v1, (ST0_EXL | KSU_USER | ST0_IE)
437 and v1, v1, ~ST0_CU0 437 and v1, v1, ~(ST0_CU0 | ST0_MX)
438 .set noat 438 .set noat
439 mtc0 v1, CP0_STATUS 439 mtc0 v1, CP0_STATUS
440 ehb 440 ehb
diff --git a/arch/mips/kvm/mips.c b/arch/mips/kvm/mips.c
index 9a28ea4f54f3..e97b90784031 100644
--- a/arch/mips/kvm/mips.c
+++ b/arch/mips/kvm/mips.c
@@ -15,6 +15,7 @@
15#include <linux/vmalloc.h> 15#include <linux/vmalloc.h>
16#include <linux/fs.h> 16#include <linux/fs.h>
17#include <linux/bootmem.h> 17#include <linux/bootmem.h>
18#include <asm/fpu.h>
18#include <asm/page.h> 19#include <asm/page.h>
19#include <asm/cacheflush.h> 20#include <asm/cacheflush.h>
20#include <asm/mmu_context.h> 21#include <asm/mmu_context.h>
@@ -379,6 +380,8 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *run)
379 vcpu->mmio_needed = 0; 380 vcpu->mmio_needed = 0;
380 } 381 }
381 382
383 lose_fpu(1);
384
382 local_irq_disable(); 385 local_irq_disable();
383 /* Check if we have any exceptions/interrupts pending */ 386 /* Check if we have any exceptions/interrupts pending */
384 kvm_mips_deliver_interrupts(vcpu, 387 kvm_mips_deliver_interrupts(vcpu,
@@ -986,9 +989,6 @@ static void kvm_mips_set_c0_status(void)
986{ 989{
987 uint32_t status = read_c0_status(); 990 uint32_t status = read_c0_status();
988 991
989 if (cpu_has_fpu)
990 status |= (ST0_CU1);
991
992 if (cpu_has_dsp) 992 if (cpu_has_dsp)
993 status |= (ST0_MX); 993 status |= (ST0_MX);
994 994