Lines Matching refs:kvm
72 if (vcpu->arch.sie_block->ckc >= kvm_s390_get_tod_clock_fast(vcpu->kvm)) in ckc_irq_pending()
107 return vcpu->kvm->arch.float_int.pending_irqs | in pending_irqs()
150 vcpu->kvm->arch.float_int.mchk.cr14)) in deliverable_irqs()
323 struct kvm_s390_float_interrupt *fi = &vcpu->kvm->arch.float_int; in __deliver_machine_check()
601 struct kvm_s390_float_interrupt *fi = &vcpu->kvm->arch.float_int; in __deliver_service()
635 struct kvm_s390_float_interrupt *fi = &vcpu->kvm->arch.float_int; in __deliver_pfault_done()
677 struct kvm_s390_float_interrupt *fi = &vcpu->kvm->arch.float_int; in __deliver_virtio()
729 fi = &vcpu->kvm->arch.float_int; in __deliver_io()
795 uint8_t sigp_ctrl = vcpu->kvm->arch.sca->cpu[vcpu->vcpu_id].sigp_ctrl; in kvm_s390_ext_call_pending()
849 now = kvm_s390_get_tod_clock_fast(vcpu->kvm); in kvm_s390_handle_wait()
860 srcu_read_unlock(&vcpu->kvm->srcu, vcpu->srcu_idx); in kvm_s390_handle_wait()
863 vcpu->srcu_idx = srcu_read_lock(&vcpu->kvm->srcu); in kvm_s390_handle_wait()
888 now = kvm_s390_get_tod_clock_fast(vcpu->kvm); in kvm_s390_idle_wakeup()
914 vcpu->kvm->arch.sca->cpu[vcpu->vcpu_id].sigp_ctrl = 0; in kvm_s390_clear_local_irqs()
1009 uint8_t *sigp_ctrl = &vcpu->kvm->arch.sca->cpu[vcpu->vcpu_id].sigp_ctrl; in __inject_extcall_sigpif()
1033 if (kvm_get_vcpu_by_id(vcpu->kvm, src_id) == NULL) in __inject_extcall()
1113 if (kvm_get_vcpu_by_id(vcpu->kvm, irq->u.emerg.code) == NULL) in __inject_sigp_emergency()
1179 static struct kvm_s390_interrupt_info *get_io_int(struct kvm *kvm, in get_io_int() argument
1182 struct kvm_s390_float_interrupt *fi = &kvm->arch.float_int; in get_io_int()
1209 struct kvm_s390_interrupt_info *kvm_s390_get_io_int(struct kvm *kvm, in kvm_s390_get_io_int() argument
1217 inti = get_io_int(kvm, isc, schid); in kvm_s390_get_io_int()
1225 static int __inject_service(struct kvm *kvm, in __inject_service() argument
1228 struct kvm_s390_float_interrupt *fi = &kvm->arch.float_int; in __inject_service()
1250 static int __inject_virtio(struct kvm *kvm, in __inject_virtio() argument
1253 struct kvm_s390_float_interrupt *fi = &kvm->arch.float_int; in __inject_virtio()
1267 static int __inject_pfault_done(struct kvm *kvm, in __inject_pfault_done() argument
1270 struct kvm_s390_float_interrupt *fi = &kvm->arch.float_int; in __inject_pfault_done()
1286 static int __inject_float_mchk(struct kvm *kvm, in __inject_float_mchk() argument
1289 struct kvm_s390_float_interrupt *fi = &kvm->arch.float_int; in __inject_float_mchk()
1300 static int __inject_io(struct kvm *kvm, struct kvm_s390_interrupt_info *inti) in __inject_io() argument
1306 fi = &kvm->arch.float_int; in __inject_io()
1325 static void __floating_irq_kick(struct kvm *kvm, u64 type) in __floating_irq_kick() argument
1327 struct kvm_s390_float_interrupt *fi = &kvm->arch.float_int; in __floating_irq_kick()
1332 online_vcpus = atomic_read(&kvm->online_vcpus); in __floating_irq_kick()
1345 } while (is_vcpu_stopped(kvm_get_vcpu(kvm, sigcpu))); in __floating_irq_kick()
1347 dst_vcpu = kvm_get_vcpu(kvm, sigcpu); in __floating_irq_kick()
1367 static int __inject_vm(struct kvm *kvm, struct kvm_s390_interrupt_info *inti) in __inject_vm() argument
1374 rc = __inject_float_mchk(kvm, inti); in __inject_vm()
1377 rc = __inject_virtio(kvm, inti); in __inject_vm()
1380 rc = __inject_service(kvm, inti); in __inject_vm()
1383 rc = __inject_pfault_done(kvm, inti); in __inject_vm()
1386 rc = __inject_io(kvm, inti); in __inject_vm()
1394 __floating_irq_kick(kvm, type); in __inject_vm()
1398 int kvm_s390_inject_vm(struct kvm *kvm, in kvm_s390_inject_vm() argument
1411 VM_EVENT(kvm, 5, "inject: virtio parm:%x,parm64:%llx", in kvm_s390_inject_vm()
1417 VM_EVENT(kvm, 4, "inject: sclp parm:%x", s390int->parm); in kvm_s390_inject_vm()
1424 VM_EVENT(kvm, 3, "inject: machine check mcic 0x%llx", in kvm_s390_inject_vm()
1431 VM_EVENT(kvm, 5, "%s", "inject: I/O (AI)"); in kvm_s390_inject_vm()
1433 VM_EVENT(kvm, 5, "inject: I/O css %x ss %x schid %04x", in kvm_s390_inject_vm()
1449 rc = __inject_vm(kvm, inti); in kvm_s390_inject_vm()
1455 int kvm_s390_reinject_io_int(struct kvm *kvm, in kvm_s390_reinject_io_int() argument
1458 return __inject_vm(kvm, inti); in kvm_s390_reinject_io_int()
1595 void kvm_s390_clear_float_irqs(struct kvm *kvm) in kvm_s390_clear_float_irqs() argument
1597 struct kvm_s390_float_interrupt *fi = &kvm->arch.float_int; in kvm_s390_clear_float_irqs()
1611 static int get_all_floating_irqs(struct kvm *kvm, u8 __user *usrbuf, u64 len) in get_all_floating_irqs() argument
1636 fi = &kvm->arch.float_int; in get_all_floating_irqs()
1689 r = get_all_floating_irqs(dev->kvm, (u8 __user *) attr->addr, in flic_get_attr()
1761 r = __inject_vm(dev->kvm, inti); in enqueue_floating_irq()
1773 static struct s390_io_adapter *get_io_adapter(struct kvm *kvm, unsigned int id) in get_io_adapter() argument
1777 return kvm->arch.adapters[id]; in get_io_adapter()
1791 (dev->kvm->arch.adapters[adapter_info.id] != NULL)) in register_io_adapter()
1806 dev->kvm->arch.adapters[adapter->id] = adapter; in register_io_adapter()
1811 int kvm_s390_mask_adapter(struct kvm *kvm, unsigned int id, bool masked) in kvm_s390_mask_adapter() argument
1814 struct s390_io_adapter *adapter = get_io_adapter(kvm, id); in kvm_s390_mask_adapter()
1823 static int kvm_s390_adapter_map(struct kvm *kvm, unsigned int id, __u64 addr) in kvm_s390_adapter_map() argument
1825 struct s390_io_adapter *adapter = get_io_adapter(kvm, id); in kvm_s390_adapter_map()
1839 map->addr = gmap_translate(kvm->arch.gmap, addr); in kvm_s390_adapter_map()
1863 static int kvm_s390_adapter_unmap(struct kvm *kvm, unsigned int id, __u64 addr) in kvm_s390_adapter_unmap() argument
1865 struct s390_io_adapter *adapter = get_io_adapter(kvm, id); in kvm_s390_adapter_unmap()
1888 void kvm_s390_destroy_adapters(struct kvm *kvm) in kvm_s390_destroy_adapters() argument
1894 if (!kvm->arch.adapters[i]) in kvm_s390_destroy_adapters()
1897 &kvm->arch.adapters[i]->maps, list) { in kvm_s390_destroy_adapters()
1902 kfree(kvm->arch.adapters[i]); in kvm_s390_destroy_adapters()
1916 adapter = get_io_adapter(dev->kvm, req.id); in modify_io_adapter()
1921 ret = kvm_s390_mask_adapter(dev->kvm, req.id, req.mask); in modify_io_adapter()
1926 ret = kvm_s390_adapter_map(dev->kvm, req.id, req.addr); in modify_io_adapter()
1929 ret = kvm_s390_adapter_unmap(dev->kvm, req.id, req.addr); in modify_io_adapter()
1949 kvm_s390_clear_float_irqs(dev->kvm); in flic_set_attr()
1952 dev->kvm->arch.gmap->pfault_enabled = 1; in flic_set_attr()
1955 dev->kvm->arch.gmap->pfault_enabled = 0; in flic_set_attr()
1961 synchronize_srcu(&dev->kvm->srcu); in flic_set_attr()
1962 kvm_for_each_vcpu(i, vcpu, dev->kvm) in flic_set_attr()
1982 if (dev->kvm->arch.flic) in flic_create()
1984 dev->kvm->arch.flic = dev; in flic_create()
1990 dev->kvm->arch.flic = NULL; in flic_destroy()
2027 static int adapter_indicators_set(struct kvm *kvm, in adapter_indicators_set() argument
2042 idx = srcu_read_lock(&kvm->srcu); in adapter_indicators_set()
2043 mark_page_dirty(kvm, info->guest_addr >> PAGE_SHIFT); in adapter_indicators_set()
2047 srcu_read_unlock(&kvm->srcu, idx); in adapter_indicators_set()
2054 mark_page_dirty(kvm, info->guest_addr >> PAGE_SHIFT); in adapter_indicators_set()
2056 srcu_read_unlock(&kvm->srcu, idx); in adapter_indicators_set()
2066 struct kvm *kvm, int irq_source_id, int level, in set_adapter_int() argument
2075 adapter = get_io_adapter(kvm, e->adapter.adapter_id); in set_adapter_int()
2079 ret = adapter_indicators_set(kvm, adapter, &e->adapter); in set_adapter_int()
2087 ret = kvm_s390_inject_vm(kvm, &s390int); in set_adapter_int()
2116 int kvm_set_msi(struct kvm_kernel_irq_routing_entry *e, struct kvm *kvm, in kvm_set_msi() argument
2206 uint8_t sigp_ctrl = vcpu->kvm->arch.sca->cpu[vcpu->vcpu_id].sigp_ctrl; in kvm_s390_get_irq_state()