diff options
-rw-r--r-- | arch/arm/kvm/coproc_a15.c | 11 |
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 @@ | |||
27 | static void reset_mpidr(struct kvm_vcpu *vcpu, const struct coproc_reg *r) | 27 | static 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" |