Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm
[platform/kernel/linux-rpi.git] / arch / mips / kvm / mips.c
index ce96149..06a60b1 100644 (file)
@@ -14,6 +14,7 @@
 #include <linux/err.h>
 #include <linux/kdebug.h>
 #include <linux/module.h>
+#include <linux/uaccess.h>
 #include <linux/vmalloc.h>
 #include <linux/fs.h>
 #include <linux/bootmem.h>
@@ -425,7 +426,7 @@ int kvm_arch_vcpu_ioctl_set_guest_debug(struct kvm_vcpu *vcpu,
 static void kvm_mips_check_asids(struct kvm_vcpu *vcpu)
 {
        struct mips_coproc *cop0 = vcpu->arch.cop0;
-       int cpu = smp_processor_id();
+       int i, cpu = smp_processor_id();
        unsigned int gasid;
 
        /*
@@ -441,6 +442,9 @@ static void kvm_mips_check_asids(struct kvm_vcpu *vcpu)
                                                vcpu);
                        vcpu->arch.guest_user_asid[cpu] =
                                vcpu->arch.guest_user_mm.context.asid[cpu];
+                       for_each_possible_cpu(i)
+                               if (i != cpu)
+                                       vcpu->arch.guest_user_asid[cpu] = 0;
                        vcpu->arch.last_user_gasid = gasid;
                }
        }