diff options
author | Bharat Bhushan <r65777@freescale.com> | 2013-03-20 16:24:58 -0400 |
---|---|---|
committer | Alexander Graf <agraf@suse.de> | 2013-04-17 09:21:14 -0400 |
commit | 8c32a2ea655d035798d3270717924ad8be903e24 (patch) | |
tree | a1344bec6ab959ce2882f0ac7f41bf05c3be77e7 /arch/powerpc/kvm | |
parent | fca7567c30a45962401d8d0707e6b6d7adf90f9a (diff) |
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 6548445fd823..2d32ae4bc439 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) | |||
529 | val = get_reg_val(reg->id, vcpu->arch.vscr.u[3]); | 529 | val = get_reg_val(reg->id, vcpu->arch.vscr.u[3]); |
530 | break; | 530 | break; |
531 | #endif /* CONFIG_ALTIVEC */ | 531 | #endif /* CONFIG_ALTIVEC */ |
532 | case KVM_REG_PPC_DEBUG_INST: { | ||
533 | u32 opcode = INS_TW; | ||
534 | r = copy_to_user((u32 __user *)(long)reg->addr, | ||
535 | &opcode, sizeof(u32)); | ||
536 | break; | ||
537 | } | ||
532 | default: | 538 | default: |
533 | r = -EINVAL; | 539 | r = -EINVAL; |
534 | break; | 540 | break; |
diff --git a/arch/powerpc/kvm/booke.c b/arch/powerpc/kvm/booke.c index 58057d6f146d..a49a68a25c39 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) | |||
1447 | case KVM_REG_PPC_TSR: | 1447 | case KVM_REG_PPC_TSR: |
1448 | r = put_user(vcpu->arch.tsr, (u32 __user *)(long)reg->addr); | 1448 | r = put_user(vcpu->arch.tsr, (u32 __user *)(long)reg->addr); |
1449 | break; | 1449 | break; |
1450 | case KVM_REG_PPC_DEBUG_INST: { | ||
1451 | u32 opcode = KVMPPC_INST_EHPRIV; | ||
1452 | r = copy_to_user((u32 __user *)(long)reg->addr, | ||
1453 | &opcode, sizeof(u32)); | ||
1454 | break; | ||
1455 | } | ||
1450 | default: | 1456 | default: |
1451 | break; | 1457 | break; |
1452 | } | 1458 | } |