diff options
-rw-r--r-- | arch/mips/kvm/locore.S | 2 | ||||
-rw-r--r-- | arch/mips/kvm/mips.c | 6 |
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 | ||