KVM: PPC: e500: Don't hardcode PIR=0
The hardcoded behavior prevents proper SMP support. user space shall specify the vcpu's PIR as the vcpu id. Signed-off-by: Scott Wood <scottwood@freescale.com> Signed-off-by: Alexander Graf <agraf@suse.de> Signed-off-by: Avi Kivity <avi@redhat.com>
This commit is contained in:
parent
303b7c97e3
commit
841741f23b
|
@ -761,7 +761,7 @@ static void get_sregs_arch206(struct kvm_vcpu *vcpu,
|
|||
{
|
||||
sregs->u.e.features |= KVM_SREGS_E_ARCH206;
|
||||
|
||||
sregs->u.e.pir = 0;
|
||||
sregs->u.e.pir = vcpu->vcpu_id;
|
||||
sregs->u.e.mcsrr0 = vcpu->arch.mcsrr0;
|
||||
sregs->u.e.mcsrr1 = vcpu->arch.mcsrr1;
|
||||
sregs->u.e.decar = vcpu->arch.decar;
|
||||
|
@ -774,7 +774,7 @@ static int set_sregs_arch206(struct kvm_vcpu *vcpu,
|
|||
if (!(sregs->u.e.features & KVM_SREGS_E_ARCH206))
|
||||
return 0;
|
||||
|
||||
if (sregs->u.e.pir != 0)
|
||||
if (sregs->u.e.pir != vcpu->vcpu_id)
|
||||
return -EINVAL;
|
||||
|
||||
vcpu->arch.mcsrr0 = sregs->u.e.mcsrr0;
|
||||
|
|
|
@ -71,9 +71,6 @@ int kvmppc_core_vcpu_setup(struct kvm_vcpu *vcpu)
|
|||
vcpu->arch.pvr = mfspr(SPRN_PVR);
|
||||
vcpu_e500->svr = mfspr(SPRN_SVR);
|
||||
|
||||
/* Since booke kvm only support one core, update all vcpus' PIR to 0 */
|
||||
vcpu->vcpu_id = 0;
|
||||
|
||||
vcpu->arch.cpu_type = KVM_CPU_E500V2;
|
||||
|
||||
return 0;
|
||||
|
|
Loading…
Reference in a new issue