Commit 547465ef authored by Bharat Bhushan's avatar Bharat Bhushan Committed by Alexander Graf

KVM: PPC: E500: Using "struct debug_reg"

For KVM also use the "struct debug_reg" defined in asm/processor.h
Signed-off-by: default avatarBharat Bhushan <bharat.bhushan@freescale.com>
Signed-off-by: default avatarAlexander Graf <agraf@suse.de>
parent b12c7841
...@@ -387,17 +387,6 @@ struct kvmppc_slb { ...@@ -387,17 +387,6 @@ struct kvmppc_slb {
#define KVMPPC_EPR_USER 1 /* exit to userspace to fill EPR */ #define KVMPPC_EPR_USER 1 /* exit to userspace to fill EPR */
#define KVMPPC_EPR_KERNEL 2 /* in-kernel irqchip */ #define KVMPPC_EPR_KERNEL 2 /* in-kernel irqchip */
struct kvmppc_booke_debug_reg {
u32 dbcr0;
u32 dbcr1;
u32 dbcr2;
#ifdef CONFIG_KVM_E500MC
u32 dbcr4;
#endif
u64 iac[KVMPPC_BOOKE_MAX_IAC];
u64 dac[KVMPPC_BOOKE_MAX_DAC];
};
#define KVMPPC_IRQ_DEFAULT 0 #define KVMPPC_IRQ_DEFAULT 0
#define KVMPPC_IRQ_MPIC 1 #define KVMPPC_IRQ_MPIC 1
#define KVMPPC_IRQ_XICS 2 #define KVMPPC_IRQ_XICS 2
...@@ -549,7 +538,7 @@ struct kvm_vcpu_arch { ...@@ -549,7 +538,7 @@ struct kvm_vcpu_arch {
u32 eptcfg; u32 eptcfg;
u32 epr; u32 epr;
u32 crit_save; u32 crit_save;
struct kvmppc_booke_debug_reg dbg_reg; struct debug_reg dbg_reg;
#endif #endif
gpa_t paddr_accessed; gpa_t paddr_accessed;
gva_t vaddr_accessed; gva_t vaddr_accessed;
......
...@@ -1441,7 +1441,6 @@ int kvm_vcpu_ioctl_get_one_reg(struct kvm_vcpu *vcpu, struct kvm_one_reg *reg) ...@@ -1441,7 +1441,6 @@ int kvm_vcpu_ioctl_get_one_reg(struct kvm_vcpu *vcpu, struct kvm_one_reg *reg)
int r = 0; int r = 0;
union kvmppc_one_reg val; union kvmppc_one_reg val;
int size; int size;
long int i;
size = one_reg_size(reg->id); size = one_reg_size(reg->id);
if (size > sizeof(val)) if (size > sizeof(val))
...@@ -1449,16 +1448,24 @@ int kvm_vcpu_ioctl_get_one_reg(struct kvm_vcpu *vcpu, struct kvm_one_reg *reg) ...@@ -1449,16 +1448,24 @@ int kvm_vcpu_ioctl_get_one_reg(struct kvm_vcpu *vcpu, struct kvm_one_reg *reg)
switch (reg->id) { switch (reg->id) {
case KVM_REG_PPC_IAC1: case KVM_REG_PPC_IAC1:
val = get_reg_val(reg->id, vcpu->arch.dbg_reg.iac1);
break;
case KVM_REG_PPC_IAC2: case KVM_REG_PPC_IAC2:
val = get_reg_val(reg->id, vcpu->arch.dbg_reg.iac2);
break;
#if CONFIG_PPC_ADV_DEBUG_IACS > 2
case KVM_REG_PPC_IAC3: case KVM_REG_PPC_IAC3:
val = get_reg_val(reg->id, vcpu->arch.dbg_reg.iac3);
break;
case KVM_REG_PPC_IAC4: case KVM_REG_PPC_IAC4:
i = reg->id - KVM_REG_PPC_IAC1; val = get_reg_val(reg->id, vcpu->arch.dbg_reg.iac4);
val = get_reg_val(reg->id, vcpu->arch.dbg_reg.iac[i]);
break; break;
#endif
case KVM_REG_PPC_DAC1: case KVM_REG_PPC_DAC1:
val = get_reg_val(reg->id, vcpu->arch.dbg_reg.dac1);
break;
case KVM_REG_PPC_DAC2: case KVM_REG_PPC_DAC2:
i = reg->id - KVM_REG_PPC_DAC1; val = get_reg_val(reg->id, vcpu->arch.dbg_reg.dac2);
val = get_reg_val(reg->id, vcpu->arch.dbg_reg.dac[i]);
break; break;
case KVM_REG_PPC_EPR: { case KVM_REG_PPC_EPR: {
u32 epr = get_guest_epr(vcpu); u32 epr = get_guest_epr(vcpu);
...@@ -1501,7 +1508,6 @@ int kvm_vcpu_ioctl_set_one_reg(struct kvm_vcpu *vcpu, struct kvm_one_reg *reg) ...@@ -1501,7 +1508,6 @@ int kvm_vcpu_ioctl_set_one_reg(struct kvm_vcpu *vcpu, struct kvm_one_reg *reg)
int r = 0; int r = 0;
union kvmppc_one_reg val; union kvmppc_one_reg val;
int size; int size;
long int i;
size = one_reg_size(reg->id); size = one_reg_size(reg->id);
if (size > sizeof(val)) if (size > sizeof(val))
...@@ -1512,16 +1518,24 @@ int kvm_vcpu_ioctl_set_one_reg(struct kvm_vcpu *vcpu, struct kvm_one_reg *reg) ...@@ -1512,16 +1518,24 @@ int kvm_vcpu_ioctl_set_one_reg(struct kvm_vcpu *vcpu, struct kvm_one_reg *reg)
switch (reg->id) { switch (reg->id) {
case KVM_REG_PPC_IAC1: case KVM_REG_PPC_IAC1:
vcpu->arch.dbg_reg.iac1 = set_reg_val(reg->id, val);
break;
case KVM_REG_PPC_IAC2: case KVM_REG_PPC_IAC2:
vcpu->arch.dbg_reg.iac2 = set_reg_val(reg->id, val);
break;
#if CONFIG_PPC_ADV_DEBUG_IACS > 2
case KVM_REG_PPC_IAC3: case KVM_REG_PPC_IAC3:
vcpu->arch.dbg_reg.iac3 = set_reg_val(reg->id, val);
break;
case KVM_REG_PPC_IAC4: case KVM_REG_PPC_IAC4:
i = reg->id - KVM_REG_PPC_IAC1; vcpu->arch.dbg_reg.iac4 = set_reg_val(reg->id, val);
vcpu->arch.dbg_reg.iac[i] = set_reg_val(reg->id, val);
break; break;
#endif
case KVM_REG_PPC_DAC1: case KVM_REG_PPC_DAC1:
vcpu->arch.dbg_reg.dac1 = set_reg_val(reg->id, val);
break;
case KVM_REG_PPC_DAC2: case KVM_REG_PPC_DAC2:
i = reg->id - KVM_REG_PPC_DAC1; vcpu->arch.dbg_reg.dac2 = set_reg_val(reg->id, val);
vcpu->arch.dbg_reg.dac[i] = set_reg_val(reg->id, val);
break; break;
case KVM_REG_PPC_EPR: { case KVM_REG_PPC_EPR: {
u32 new_epr = set_reg_val(reg->id, val); u32 new_epr = set_reg_val(reg->id, val);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment