aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kvm
diff options
context:
space:
mode:
authorBharat Bhushan <r65777@freescale.com>2013-03-20 16:24:58 -0400
committerAlexander Graf <agraf@suse.de>2013-04-17 09:21:14 -0400
commit8c32a2ea655d035798d3270717924ad8be903e24 (patch)
treea1344bec6ab959ce2882f0ac7f41bf05c3be77e7 /arch/powerpc/kvm
parentfca7567c30a45962401d8d0707e6b6d7adf90f9a (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.c6
-rw-r--r--arch/powerpc/kvm/booke.c6
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 }