Loading arch/ia64/kvm/mmio.c +4 −2 Original line number Original line Diff line number Diff line Loading @@ -247,7 +247,8 @@ void emulate_io_inst(struct kvm_vcpu *vcpu, u64 padr, u64 ma) vcpu_get_fpreg(vcpu, inst.M9.f2, &v); vcpu_get_fpreg(vcpu, inst.M9.f2, &v); /* Write high word. FIXME: this is a kludge! */ /* Write high word. FIXME: this is a kludge! */ v.u.bits[1] &= 0x3ffff; v.u.bits[1] &= 0x3ffff; mmio_access(vcpu, padr + 8, &v.u.bits[1], 8, ma, IOREQ_WRITE); mmio_access(vcpu, padr + 8, (u64 *)&v.u.bits[1], 8, ma, IOREQ_WRITE); data = v.u.bits[0]; data = v.u.bits[0]; size = 3; size = 3; } else if (inst.M10.major == 7 && inst.M10.x6 == 0x3B) { } else if (inst.M10.major == 7 && inst.M10.x6 == 0x3B) { Loading @@ -265,7 +266,8 @@ void emulate_io_inst(struct kvm_vcpu *vcpu, u64 padr, u64 ma) /* Write high word.FIXME: this is a kludge! */ /* Write high word.FIXME: this is a kludge! */ v.u.bits[1] &= 0x3ffff; v.u.bits[1] &= 0x3ffff; mmio_access(vcpu, padr + 8, &v.u.bits[1], 8, ma, IOREQ_WRITE); mmio_access(vcpu, padr + 8, (u64 *)&v.u.bits[1], 8, ma, IOREQ_WRITE); data = v.u.bits[0]; data = v.u.bits[0]; size = 3; size = 3; } else if (inst.M10.major == 7 && inst.M10.x6 == 0x31) { } else if (inst.M10.major == 7 && inst.M10.x6 == 0x31) { Loading arch/ia64/kvm/vcpu.c +3 −3 Original line number Original line Diff line number Diff line Loading @@ -461,7 +461,7 @@ void setreg(unsigned long regnum, unsigned long val, u64 vcpu_get_gr(struct kvm_vcpu *vcpu, unsigned long reg) u64 vcpu_get_gr(struct kvm_vcpu *vcpu, unsigned long reg) { { struct kvm_pt_regs *regs = vcpu_regs(vcpu); struct kvm_pt_regs *regs = vcpu_regs(vcpu); u64 val; unsigned long val; if (!reg) if (!reg) return 0; return 0; Loading @@ -469,7 +469,7 @@ u64 vcpu_get_gr(struct kvm_vcpu *vcpu, unsigned long reg) return val; return val; } } void vcpu_set_gr(struct kvm_vcpu *vcpu, u64 reg, u64 value, int nat) void vcpu_set_gr(struct kvm_vcpu *vcpu, unsigned long reg, u64 value, int nat) { { struct kvm_pt_regs *regs = vcpu_regs(vcpu); struct kvm_pt_regs *regs = vcpu_regs(vcpu); long sof = (regs->cr_ifs) & 0x7f; long sof = (regs->cr_ifs) & 0x7f; Loading Loading @@ -1072,7 +1072,7 @@ void kvm_ttag(struct kvm_vcpu *vcpu, INST64 inst) vcpu_set_gr(vcpu, inst.M46.r1, tag, 0); vcpu_set_gr(vcpu, inst.M46.r1, tag, 0); } } int vcpu_tpa(struct kvm_vcpu *vcpu, u64 vadr, u64 *padr) int vcpu_tpa(struct kvm_vcpu *vcpu, u64 vadr, unsigned long *padr) { { struct thash_data *data; struct thash_data *data; union ia64_isr visr, pt_isr; union ia64_isr visr, pt_isr; Loading arch/ia64/kvm/vcpu.h +7 −6 Original line number Original line Diff line number Diff line Loading @@ -686,14 +686,15 @@ static inline int highest_inservice_irq(struct kvm_vcpu *vcpu) return highest_bits((int *)&(VMX(vcpu, insvc[0]))); return highest_bits((int *)&(VMX(vcpu, insvc[0]))); } } extern void vcpu_get_fpreg(struct kvm_vcpu *vcpu, u64 reg, extern void vcpu_get_fpreg(struct kvm_vcpu *vcpu, unsigned long reg, struct ia64_fpreg *val); struct ia64_fpreg *val); extern void vcpu_set_fpreg(struct kvm_vcpu *vcpu, u64 reg, extern void vcpu_set_fpreg(struct kvm_vcpu *vcpu, unsigned long reg, struct ia64_fpreg *val); struct ia64_fpreg *val); extern u64 vcpu_get_gr(struct kvm_vcpu *vcpu, u64 reg); extern u64 vcpu_get_gr(struct kvm_vcpu *vcpu, unsigned long reg); extern void vcpu_set_gr(struct kvm_vcpu *vcpu, u64 reg, u64 val, int nat); extern void vcpu_set_gr(struct kvm_vcpu *vcpu, unsigned long reg, extern u64 vcpu_get_psr(struct kvm_vcpu *vcpu); u64 val, int nat); extern void vcpu_set_psr(struct kvm_vcpu *vcpu, u64 val); extern unsigned long vcpu_get_psr(struct kvm_vcpu *vcpu); extern void vcpu_set_psr(struct kvm_vcpu *vcpu, unsigned long val); extern u64 vcpu_thash(struct kvm_vcpu *vcpu, u64 vadr); extern u64 vcpu_thash(struct kvm_vcpu *vcpu, u64 vadr); extern void vcpu_bsw0(struct kvm_vcpu *vcpu); extern void vcpu_bsw0(struct kvm_vcpu *vcpu); extern void thash_vhpt_insert(struct kvm_vcpu *v, u64 pte, extern void thash_vhpt_insert(struct kvm_vcpu *v, u64 pte, Loading Loading
arch/ia64/kvm/mmio.c +4 −2 Original line number Original line Diff line number Diff line Loading @@ -247,7 +247,8 @@ void emulate_io_inst(struct kvm_vcpu *vcpu, u64 padr, u64 ma) vcpu_get_fpreg(vcpu, inst.M9.f2, &v); vcpu_get_fpreg(vcpu, inst.M9.f2, &v); /* Write high word. FIXME: this is a kludge! */ /* Write high word. FIXME: this is a kludge! */ v.u.bits[1] &= 0x3ffff; v.u.bits[1] &= 0x3ffff; mmio_access(vcpu, padr + 8, &v.u.bits[1], 8, ma, IOREQ_WRITE); mmio_access(vcpu, padr + 8, (u64 *)&v.u.bits[1], 8, ma, IOREQ_WRITE); data = v.u.bits[0]; data = v.u.bits[0]; size = 3; size = 3; } else if (inst.M10.major == 7 && inst.M10.x6 == 0x3B) { } else if (inst.M10.major == 7 && inst.M10.x6 == 0x3B) { Loading @@ -265,7 +266,8 @@ void emulate_io_inst(struct kvm_vcpu *vcpu, u64 padr, u64 ma) /* Write high word.FIXME: this is a kludge! */ /* Write high word.FIXME: this is a kludge! */ v.u.bits[1] &= 0x3ffff; v.u.bits[1] &= 0x3ffff; mmio_access(vcpu, padr + 8, &v.u.bits[1], 8, ma, IOREQ_WRITE); mmio_access(vcpu, padr + 8, (u64 *)&v.u.bits[1], 8, ma, IOREQ_WRITE); data = v.u.bits[0]; data = v.u.bits[0]; size = 3; size = 3; } else if (inst.M10.major == 7 && inst.M10.x6 == 0x31) { } else if (inst.M10.major == 7 && inst.M10.x6 == 0x31) { Loading
arch/ia64/kvm/vcpu.c +3 −3 Original line number Original line Diff line number Diff line Loading @@ -461,7 +461,7 @@ void setreg(unsigned long regnum, unsigned long val, u64 vcpu_get_gr(struct kvm_vcpu *vcpu, unsigned long reg) u64 vcpu_get_gr(struct kvm_vcpu *vcpu, unsigned long reg) { { struct kvm_pt_regs *regs = vcpu_regs(vcpu); struct kvm_pt_regs *regs = vcpu_regs(vcpu); u64 val; unsigned long val; if (!reg) if (!reg) return 0; return 0; Loading @@ -469,7 +469,7 @@ u64 vcpu_get_gr(struct kvm_vcpu *vcpu, unsigned long reg) return val; return val; } } void vcpu_set_gr(struct kvm_vcpu *vcpu, u64 reg, u64 value, int nat) void vcpu_set_gr(struct kvm_vcpu *vcpu, unsigned long reg, u64 value, int nat) { { struct kvm_pt_regs *regs = vcpu_regs(vcpu); struct kvm_pt_regs *regs = vcpu_regs(vcpu); long sof = (regs->cr_ifs) & 0x7f; long sof = (regs->cr_ifs) & 0x7f; Loading Loading @@ -1072,7 +1072,7 @@ void kvm_ttag(struct kvm_vcpu *vcpu, INST64 inst) vcpu_set_gr(vcpu, inst.M46.r1, tag, 0); vcpu_set_gr(vcpu, inst.M46.r1, tag, 0); } } int vcpu_tpa(struct kvm_vcpu *vcpu, u64 vadr, u64 *padr) int vcpu_tpa(struct kvm_vcpu *vcpu, u64 vadr, unsigned long *padr) { { struct thash_data *data; struct thash_data *data; union ia64_isr visr, pt_isr; union ia64_isr visr, pt_isr; Loading
arch/ia64/kvm/vcpu.h +7 −6 Original line number Original line Diff line number Diff line Loading @@ -686,14 +686,15 @@ static inline int highest_inservice_irq(struct kvm_vcpu *vcpu) return highest_bits((int *)&(VMX(vcpu, insvc[0]))); return highest_bits((int *)&(VMX(vcpu, insvc[0]))); } } extern void vcpu_get_fpreg(struct kvm_vcpu *vcpu, u64 reg, extern void vcpu_get_fpreg(struct kvm_vcpu *vcpu, unsigned long reg, struct ia64_fpreg *val); struct ia64_fpreg *val); extern void vcpu_set_fpreg(struct kvm_vcpu *vcpu, u64 reg, extern void vcpu_set_fpreg(struct kvm_vcpu *vcpu, unsigned long reg, struct ia64_fpreg *val); struct ia64_fpreg *val); extern u64 vcpu_get_gr(struct kvm_vcpu *vcpu, u64 reg); extern u64 vcpu_get_gr(struct kvm_vcpu *vcpu, unsigned long reg); extern void vcpu_set_gr(struct kvm_vcpu *vcpu, u64 reg, u64 val, int nat); extern void vcpu_set_gr(struct kvm_vcpu *vcpu, unsigned long reg, extern u64 vcpu_get_psr(struct kvm_vcpu *vcpu); u64 val, int nat); extern void vcpu_set_psr(struct kvm_vcpu *vcpu, u64 val); extern unsigned long vcpu_get_psr(struct kvm_vcpu *vcpu); extern void vcpu_set_psr(struct kvm_vcpu *vcpu, unsigned long val); extern u64 vcpu_thash(struct kvm_vcpu *vcpu, u64 vadr); extern u64 vcpu_thash(struct kvm_vcpu *vcpu, u64 vadr); extern void vcpu_bsw0(struct kvm_vcpu *vcpu); extern void vcpu_bsw0(struct kvm_vcpu *vcpu); extern void thash_vhpt_insert(struct kvm_vcpu *v, u64 pte, extern void thash_vhpt_insert(struct kvm_vcpu *v, u64 pte, Loading