mirror of https://gitee.com/openkylin/linux.git
KVM: ppc: Add dbsr in kvm_vcpu_arch
Kernel for E500 need clear dbsr when startup. So add dbsr register in kvm_vcpu_arch for BOOKE. Signed-off-by: Liu Yu <yu.liu@freescale.com> Signed-off-by: Hollis Blanchard <hollisb@us.ibm.com> Signed-off-by: Avi Kivity <avi@redhat.com>
This commit is contained in:
parent
d0c7dc0344
commit
f7b200af8f
|
@ -163,6 +163,7 @@ struct kvm_vcpu_arch {
|
||||||
u32 ccr1;
|
u32 ccr1;
|
||||||
u32 dbcr0;
|
u32 dbcr0;
|
||||||
u32 dbcr1;
|
u32 dbcr1;
|
||||||
|
u32 dbsr;
|
||||||
|
|
||||||
#ifdef CONFIG_KVM_EXIT_TIMING
|
#ifdef CONFIG_KVM_EXIT_TIMING
|
||||||
struct kvmppc_exit_timing timing_exit;
|
struct kvmppc_exit_timing timing_exit;
|
||||||
|
|
|
@ -111,6 +111,8 @@ int kvmppc_booke_emulate_mtspr(struct kvm_vcpu *vcpu, int sprn, int rs)
|
||||||
vcpu->arch.dbcr0 = vcpu->arch.gpr[rs]; break;
|
vcpu->arch.dbcr0 = vcpu->arch.gpr[rs]; break;
|
||||||
case SPRN_DBCR1:
|
case SPRN_DBCR1:
|
||||||
vcpu->arch.dbcr1 = vcpu->arch.gpr[rs]; break;
|
vcpu->arch.dbcr1 = vcpu->arch.gpr[rs]; break;
|
||||||
|
case SPRN_DBSR:
|
||||||
|
vcpu->arch.dbsr &= ~vcpu->arch.gpr[rs]; break;
|
||||||
case SPRN_TSR:
|
case SPRN_TSR:
|
||||||
vcpu->arch.tsr &= ~vcpu->arch.gpr[rs]; break;
|
vcpu->arch.tsr &= ~vcpu->arch.gpr[rs]; break;
|
||||||
case SPRN_TCR:
|
case SPRN_TCR:
|
||||||
|
@ -204,6 +206,8 @@ int kvmppc_booke_emulate_mfspr(struct kvm_vcpu *vcpu, int sprn, int rt)
|
||||||
vcpu->arch.gpr[rt] = vcpu->arch.dbcr0; break;
|
vcpu->arch.gpr[rt] = vcpu->arch.dbcr0; break;
|
||||||
case SPRN_DBCR1:
|
case SPRN_DBCR1:
|
||||||
vcpu->arch.gpr[rt] = vcpu->arch.dbcr1; break;
|
vcpu->arch.gpr[rt] = vcpu->arch.dbcr1; break;
|
||||||
|
case SPRN_DBSR:
|
||||||
|
vcpu->arch.gpr[rt] = vcpu->arch.dbsr; break;
|
||||||
|
|
||||||
case SPRN_IVOR0:
|
case SPRN_IVOR0:
|
||||||
vcpu->arch.gpr[rt] = vcpu->arch.ivor[BOOKE_IRQPRIO_CRITICAL];
|
vcpu->arch.gpr[rt] = vcpu->arch.ivor[BOOKE_IRQPRIO_CRITICAL];
|
||||||
|
|
Loading…
Reference in New Issue