diff --git a/arch/powerpc/include/uapi/asm/kvm.h b/arch/powerpc/include/uapi/asm/kvm.h index e0e49dbb145d..3ca357a7a26a 100644 --- a/arch/powerpc/include/uapi/asm/kvm.h +++ b/arch/powerpc/include/uapi/asm/kvm.h @@ -557,6 +557,7 @@ struct kvm_get_htab_header { #define KVM_REG_PPC_DABRX (KVM_REG_PPC | KVM_REG_SIZE_U32 | 0xb8) #define KVM_REG_PPC_WORT (KVM_REG_PPC | KVM_REG_SIZE_U64 | 0xb9) #define KVM_REG_PPC_SPRG9 (KVM_REG_PPC | KVM_REG_SIZE_U64 | 0xba) +#define KVM_REG_PPC_DBSR (KVM_REG_PPC | KVM_REG_SIZE_U32 | 0xbb) /* Transactional Memory checkpointed state: * This is all GPRs, all VSX regs and a subset of SPRs diff --git a/arch/powerpc/kvm/booke.c b/arch/powerpc/kvm/booke.c index e47de01b0dbb..074b7fc795b7 100644 --- a/arch/powerpc/kvm/booke.c +++ b/arch/powerpc/kvm/booke.c @@ -1494,6 +1494,9 @@ int kvm_vcpu_ioctl_get_one_reg(struct kvm_vcpu *vcpu, struct kvm_one_reg *reg) case KVM_REG_PPC_DAC2: val = get_reg_val(reg->id, vcpu->arch.dbg_reg.dac2); break; + case KVM_REG_PPC_DBSR: + val = get_reg_val(reg->id, vcpu->arch.dbsr); + break; case KVM_REG_PPC_EPR: { u32 epr = kvmppc_get_epr(vcpu); val = get_reg_val(reg->id, epr); @@ -1564,6 +1567,9 @@ int kvm_vcpu_ioctl_set_one_reg(struct kvm_vcpu *vcpu, struct kvm_one_reg *reg) case KVM_REG_PPC_DAC2: vcpu->arch.dbg_reg.dac2 = set_reg_val(reg->id, val); break; + case KVM_REG_PPC_DBSR: + vcpu->arch.dbsr = set_reg_val(reg->id, val); + break; case KVM_REG_PPC_EPR: { u32 new_epr = set_reg_val(reg->id, val); kvmppc_set_epr(vcpu, new_epr);