KVM: PPC: E500: Using "struct debug_reg"
For KVM also use the "struct debug_reg" defined in asm/processor.h Signed-off-by: Bharat Bhushan <bharat.bhushan@freescale.com> Signed-off-by: Alexander Graf <agraf@suse.de>
This commit is contained in:
parent
b12c784123
commit
547465ef8b
2 changed files with 31 additions and 28 deletions
|
@ -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 {
|
||||||
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)
|
||||||
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)
|
||||||
|
|
||||||
switch (reg->id) {
|
switch (reg->id) {
|
||||||
case KVM_REG_PPC_IAC1:
|
case KVM_REG_PPC_IAC1:
|
||||||
case KVM_REG_PPC_IAC2:
|
val = get_reg_val(reg->id, vcpu->arch.dbg_reg.iac1);
|
||||||
case KVM_REG_PPC_IAC3:
|
|
||||||
case KVM_REG_PPC_IAC4:
|
|
||||||
i = reg->id - KVM_REG_PPC_IAC1;
|
|
||||||
val = get_reg_val(reg->id, vcpu->arch.dbg_reg.iac[i]);
|
|
||||||
break;
|
break;
|
||||||
|
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:
|
||||||
|
val = get_reg_val(reg->id, vcpu->arch.dbg_reg.iac3);
|
||||||
|
break;
|
||||||
|
case KVM_REG_PPC_IAC4:
|
||||||
|
val = get_reg_val(reg->id, vcpu->arch.dbg_reg.iac4);
|
||||||
|
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)
|
||||||
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)
|
||||||
|
|
||||||
switch (reg->id) {
|
switch (reg->id) {
|
||||||
case KVM_REG_PPC_IAC1:
|
case KVM_REG_PPC_IAC1:
|
||||||
case KVM_REG_PPC_IAC2:
|
vcpu->arch.dbg_reg.iac1 = set_reg_val(reg->id, val);
|
||||||
case KVM_REG_PPC_IAC3:
|
|
||||||
case KVM_REG_PPC_IAC4:
|
|
||||||
i = reg->id - KVM_REG_PPC_IAC1;
|
|
||||||
vcpu->arch.dbg_reg.iac[i] = set_reg_val(reg->id, val);
|
|
||||||
break;
|
break;
|
||||||
|
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:
|
||||||
|
vcpu->arch.dbg_reg.iac3 = set_reg_val(reg->id, val);
|
||||||
|
break;
|
||||||
|
case KVM_REG_PPC_IAC4:
|
||||||
|
vcpu->arch.dbg_reg.iac4 = set_reg_val(reg->id, val);
|
||||||
|
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);
|
||||||
|
|
Loading…
Reference in a new issue