aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/arm/kvm/coproc_a15.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/arch/arm/kvm/coproc_a15.c b/arch/arm/kvm/coproc_a15.c
index cf93472b9dd6..bbd4b888dbf3 100644
--- a/arch/arm/kvm/coproc_a15.c
+++ b/arch/arm/kvm/coproc_a15.c
@@ -27,14 +27,11 @@
27static void reset_mpidr(struct kvm_vcpu *vcpu, const struct coproc_reg *r) 27static void reset_mpidr(struct kvm_vcpu *vcpu, const struct coproc_reg *r)
28{ 28{
29 /* 29 /*
30 * Compute guest MPIDR: 30 * Compute guest MPIDR. No need to mess around with different clusters
31 * (Even if we present only one VCPU to the guest on an SMP 31 * but we read the 'U' bit from the underlying hardware directly.
32 * host we don't set the U bit in the MPIDR, or vice versa, as
33 * revealing the underlying hardware properties is likely to
34 * be the best choice).
35 */ 32 */
36 vcpu->arch.cp15[c0_MPIDR] = (read_cpuid_mpidr() & ~MPIDR_LEVEL_MASK) 33 vcpu->arch.cp15[c0_MPIDR] = (read_cpuid_mpidr() & MPIDR_SMP_BITMASK)
37 | (vcpu->vcpu_id & MPIDR_LEVEL_MASK); 34 | vcpu->vcpu_id;
38} 35}
39 36
40#include "coproc.h" 37#include "coproc.h"