Lines Matching refs:vcpu

96 int kvm_handle_mmio_return(struct kvm_vcpu *vcpu, struct kvm_run *run)  in kvm_handle_mmio_return()  argument
109 if (vcpu->arch.mmio_decode.sign_extend && in kvm_handle_mmio_return()
117 data = vcpu_data_host_to_guest(vcpu, data, len); in kvm_handle_mmio_return()
118 vcpu_set_reg(vcpu, vcpu->arch.mmio_decode.rt, data); in kvm_handle_mmio_return()
124 static int decode_hsr(struct kvm_vcpu *vcpu, bool *is_write, int *len) in decode_hsr() argument
130 if (kvm_vcpu_dabt_isextabt(vcpu)) { in decode_hsr()
132 kvm_inject_dabt(vcpu, kvm_vcpu_get_hfar(vcpu)); in decode_hsr()
136 if (kvm_vcpu_dabt_iss1tw(vcpu)) { in decode_hsr()
138 kvm_inject_dabt(vcpu, kvm_vcpu_get_hfar(vcpu)); in decode_hsr()
142 access_size = kvm_vcpu_dabt_get_as(vcpu); in decode_hsr()
146 *is_write = kvm_vcpu_dabt_iswrite(vcpu); in decode_hsr()
147 sign_extend = kvm_vcpu_dabt_issext(vcpu); in decode_hsr()
148 rt = kvm_vcpu_dabt_get_rd(vcpu); in decode_hsr()
151 vcpu->arch.mmio_decode.sign_extend = sign_extend; in decode_hsr()
152 vcpu->arch.mmio_decode.rt = rt; in decode_hsr()
158 kvm_skip_instr(vcpu, kvm_vcpu_trap_il_is32bit(vcpu)); in decode_hsr()
162 int io_mem_abort(struct kvm_vcpu *vcpu, struct kvm_run *run, in io_mem_abort() argument
177 if (kvm_vcpu_dabt_isvalid(vcpu)) { in io_mem_abort()
178 ret = decode_hsr(vcpu, &is_write, &len); in io_mem_abort()
186 rt = vcpu->arch.mmio_decode.rt; in io_mem_abort()
189 data = vcpu_data_guest_to_host(vcpu, vcpu_get_reg(vcpu, rt), in io_mem_abort()
195 ret = kvm_io_bus_write(vcpu, KVM_MMIO_BUS, fault_ipa, len, in io_mem_abort()
201 ret = kvm_io_bus_read(vcpu, KVM_MMIO_BUS, fault_ipa, len, in io_mem_abort()
213 kvm_handle_mmio_return(vcpu, run); in io_mem_abort()