summaryrefslogtreecommitdiff
path: root/arch/powerpc/kvm/booke.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/powerpc/kvm/booke.c')
-rw-r--r--arch/powerpc/kvm/booke.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/arch/powerpc/kvm/booke.c b/arch/powerpc/kvm/booke.c
index f2fd47d35ab5..11825539e2b1 100644
--- a/arch/powerpc/kvm/booke.c
+++ b/arch/powerpc/kvm/booke.c
@@ -1442,6 +1442,12 @@ int kvm_vcpu_ioctl_get_one_reg(struct kvm_vcpu *vcpu, struct kvm_one_reg *reg)
r = put_user(vcpu->arch.epcr, (u32 __user *)(long)reg->addr);
break;
#endif
+ case KVM_REG_PPC_TCR:
+ r = put_user(vcpu->arch.tcr, (u32 __user *)(long)reg->addr);
+ break;
+ case KVM_REG_PPC_TSR:
+ r = put_user(vcpu->arch.tsr, (u32 __user *)(long)reg->addr);
+ break;
default:
break;
}
@@ -1485,6 +1491,30 @@ int kvm_vcpu_ioctl_set_one_reg(struct kvm_vcpu *vcpu, struct kvm_one_reg *reg)
break;
}
#endif
+ case KVM_REG_PPC_OR_TSR: {
+ u32 tsr_bits;
+ r = get_user(tsr_bits, (u32 __user *)(long)reg->addr);
+ kvmppc_set_tsr_bits(vcpu, tsr_bits);
+ break;
+ }
+ case KVM_REG_PPC_CLEAR_TSR: {
+ u32 tsr_bits;
+ r = get_user(tsr_bits, (u32 __user *)(long)reg->addr);
+ kvmppc_clr_tsr_bits(vcpu, tsr_bits);
+ break;
+ }
+ case KVM_REG_PPC_TSR: {
+ u32 tsr;
+ r = get_user(tsr, (u32 __user *)(long)reg->addr);
+ kvmppc_set_tsr(vcpu, tsr);
+ break;
+ }
+ case KVM_REG_PPC_TCR: {
+ u32 tcr;
+ r = get_user(tcr, (u32 __user *)(long)reg->addr);
+ kvmppc_set_tcr(vcpu, tcr);
+ break;
+ }
default:
break;
}