diff options
author | Bharat Bhushan <r65777@freescale.com> | 2013-03-20 20:24:58 +0000 |
---|---|---|
committer | Alexander Graf <agraf@suse.de> | 2013-04-17 15:21:14 +0200 |
commit | 8c32a2ea655d035798d3270717924ad8be903e24 (patch) | |
tree | a1344bec6ab959ce2882f0ac7f41bf05c3be77e7 /arch/powerpc/kvm | |
parent | fca7567c30a45962401d8d0707e6b6d7adf90f9a (diff) | |
download | linux-3.10-8c32a2ea655d035798d3270717924ad8be903e24.tar.gz linux-3.10-8c32a2ea655d035798d3270717924ad8be903e24.tar.bz2 linux-3.10-8c32a2ea655d035798d3270717924ad8be903e24.zip |
Added ONE_REG interface for debug instruction
This patch adds the one_reg interface to get the special instruction
to be used for setting software breakpoint from userspace.
Signed-off-by: Bharat Bhushan <bharat.bhushan@freescale.com>
Signed-off-by: Alexander Graf <agraf@suse.de>
Diffstat (limited to 'arch/powerpc/kvm')
-rw-r--r-- | arch/powerpc/kvm/book3s.c | 6 | ||||
-rw-r--r-- | arch/powerpc/kvm/booke.c | 6 |
2 files changed, 12 insertions, 0 deletions
diff --git a/arch/powerpc/kvm/book3s.c b/arch/powerpc/kvm/book3s.c index 6548445fd82..2d32ae4bc43 100644 --- a/arch/powerpc/kvm/book3s.c +++ b/arch/powerpc/kvm/book3s.c @@ -529,6 +529,12 @@ int kvm_vcpu_ioctl_get_one_reg(struct kvm_vcpu *vcpu, struct kvm_one_reg *reg) val = get_reg_val(reg->id, vcpu->arch.vscr.u[3]); break; #endif /* CONFIG_ALTIVEC */ + case KVM_REG_PPC_DEBUG_INST: { + u32 opcode = INS_TW; + r = copy_to_user((u32 __user *)(long)reg->addr, + &opcode, sizeof(u32)); + break; + } default: r = -EINVAL; break; diff --git a/arch/powerpc/kvm/booke.c b/arch/powerpc/kvm/booke.c index 58057d6f146..a49a68a25c3 100644 --- a/arch/powerpc/kvm/booke.c +++ b/arch/powerpc/kvm/booke.c @@ -1447,6 +1447,12 @@ int kvm_vcpu_ioctl_get_one_reg(struct kvm_vcpu *vcpu, struct kvm_one_reg *reg) case KVM_REG_PPC_TSR: r = put_user(vcpu->arch.tsr, (u32 __user *)(long)reg->addr); break; + case KVM_REG_PPC_DEBUG_INST: { + u32 opcode = KVMPPC_INST_EHPRIV; + r = copy_to_user((u32 __user *)(long)reg->addr, + &opcode, sizeof(u32)); + break; + } default: break; } |