aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kvm/book3s.c
diff options
context:
space:
mode:
authorAneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>2014-06-05 08:08:02 -0400
committerAlexander Graf <agraf@suse.de>2014-07-28 09:21:50 -0400
commit8f42ab2749d00ea15157ab896cfbed73a247b3e1 (patch)
tree2ca02b2e03693367661a77c28746a05852b2ed1b /arch/powerpc/kvm/book3s.c
parent3cd60e31185343d4132ca7cf3c9becb903b3ec1b (diff)
KVM: PPC: BOOK3S: PR: Emulate virtual timebase register
virtual time base register is a per VM, per cpu register that needs to be saved and restored on vm exit and entry. Writing to VTB is not allowed in the privileged mode. Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> [agraf: fix compile error] Signed-off-by: Alexander Graf <agraf@suse.de>
Diffstat (limited to 'arch/powerpc/kvm/book3s.c')
-rw-r--r--arch/powerpc/kvm/book3s.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/powerpc/kvm/book3s.c b/arch/powerpc/kvm/book3s.c
index c254c27f240e..ddce1ea8ac4a 100644
--- a/arch/powerpc/kvm/book3s.c
+++ b/arch/powerpc/kvm/book3s.c
@@ -646,6 +646,9 @@ int kvm_vcpu_ioctl_get_one_reg(struct kvm_vcpu *vcpu, struct kvm_one_reg *reg)
646 case KVM_REG_PPC_BESCR: 646 case KVM_REG_PPC_BESCR:
647 val = get_reg_val(reg->id, vcpu->arch.bescr); 647 val = get_reg_val(reg->id, vcpu->arch.bescr);
648 break; 648 break;
649 case KVM_REG_PPC_VTB:
650 val = get_reg_val(reg->id, vcpu->arch.vtb);
651 break;
649 default: 652 default:
650 r = -EINVAL; 653 r = -EINVAL;
651 break; 654 break;
@@ -750,6 +753,9 @@ int kvm_vcpu_ioctl_set_one_reg(struct kvm_vcpu *vcpu, struct kvm_one_reg *reg)
750 case KVM_REG_PPC_BESCR: 753 case KVM_REG_PPC_BESCR:
751 vcpu->arch.bescr = set_reg_val(reg->id, val); 754 vcpu->arch.bescr = set_reg_val(reg->id, val);
752 break; 755 break;
756 case KVM_REG_PPC_VTB:
757 vcpu->arch.vtb = set_reg_val(reg->id, val);
758 break;
753 default: 759 default:
754 r = -EINVAL; 760 r = -EINVAL;
755 break; 761 break;