inti 942 arch/s390/kvm/interrupt.c struct kvm_s390_interrupt_info *inti; inti 946 arch/s390/kvm/interrupt.c inti = list_first_entry_or_null(&fi->lists[FIRQ_LIST_PFAULT], inti 949 arch/s390/kvm/interrupt.c if (inti) { inti 950 arch/s390/kvm/interrupt.c list_del(&inti->list); inti 957 arch/s390/kvm/interrupt.c if (inti) { inti 960 arch/s390/kvm/interrupt.c inti->ext.ext_params2); inti 962 arch/s390/kvm/interrupt.c inti->ext.ext_params2); inti 974 arch/s390/kvm/interrupt.c rc |= put_guest_lc(vcpu, inti->ext.ext_params2, inti 976 arch/s390/kvm/interrupt.c kfree(inti); inti 984 arch/s390/kvm/interrupt.c struct kvm_s390_interrupt_info *inti; inti 988 arch/s390/kvm/interrupt.c inti = list_first_entry_or_null(&fi->lists[FIRQ_LIST_VIRTIO], inti 991 arch/s390/kvm/interrupt.c if (inti) { inti 994 arch/s390/kvm/interrupt.c inti->ext.ext_params, inti->ext.ext_params2); inti 997 arch/s390/kvm/interrupt.c inti->type, inti 998 arch/s390/kvm/interrupt.c inti->ext.ext_params, inti 999 arch/s390/kvm/interrupt.c inti->ext.ext_params2); inti 1000 arch/s390/kvm/interrupt.c list_del(&inti->list); inti 1007 arch/s390/kvm/interrupt.c if (inti) { inti 1018 arch/s390/kvm/interrupt.c rc |= put_guest_lc(vcpu, inti->ext.ext_params, inti 1020 arch/s390/kvm/interrupt.c rc |= put_guest_lc(vcpu, inti->ext.ext_params2, inti 1022 arch/s390/kvm/interrupt.c kfree(inti); inti 1050 arch/s390/kvm/interrupt.c struct kvm_s390_interrupt_info *inti = NULL; inti 1060 arch/s390/kvm/interrupt.c inti = list_first_entry_or_null(isc_list, inti 1063 arch/s390/kvm/interrupt.c if (inti) { inti 1064 arch/s390/kvm/interrupt.c if (inti->type & KVM_S390_INT_IO_AI_MASK) inti 1068 arch/s390/kvm/interrupt.c inti->io.subchannel_id >> 8, inti 1069 arch/s390/kvm/interrupt.c inti->io.subchannel_id >> 1 & 0x3, inti 1070 arch/s390/kvm/interrupt.c inti->io.subchannel_nr); inti 1074 arch/s390/kvm/interrupt.c inti->type, inti 1075 arch/s390/kvm/interrupt.c ((__u32)inti->io.subchannel_id << 16) | inti 1076 arch/s390/kvm/interrupt.c inti->io.subchannel_nr, inti 1077 arch/s390/kvm/interrupt.c ((__u64)inti->io.io_int_parm << 32) | inti 1078 arch/s390/kvm/interrupt.c inti->io.io_int_word); inti 1079 arch/s390/kvm/interrupt.c list_del(&inti->list); inti 1086 arch/s390/kvm/interrupt.c if (inti) { inti 1087 arch/s390/kvm/interrupt.c rc = __do_deliver_io(vcpu, &(inti->io)); inti 1088 arch/s390/kvm/interrupt.c kfree(inti); inti 1603 arch/s390/kvm/interrupt.c struct kvm_s390_interrupt_info *inti = NULL; inti 1606 arch/s390/kvm/interrupt.c for (isc = 0; isc <= MAX_ISC && !inti; isc++) { inti 1608 arch/s390/kvm/interrupt.c inti = get_io_int(kvm, isc, schid); inti 1610 arch/s390/kvm/interrupt.c return inti; inti 1651 arch/s390/kvm/interrupt.c struct kvm_s390_interrupt_info *inti, *tmp_inti; inti 1654 arch/s390/kvm/interrupt.c inti = get_top_io_int(kvm, isc_mask, schid); inti 1661 arch/s390/kvm/interrupt.c if (!inti) inti 1666 arch/s390/kvm/interrupt.c if (int_word_to_isc(inti->io.io_int_word) <= isc) { inti 1672 arch/s390/kvm/interrupt.c tmp_inti = kzalloc(sizeof(*inti), GFP_KERNEL); inti 1676 arch/s390/kvm/interrupt.c if (inti) inti 1677 arch/s390/kvm/interrupt.c kvm_s390_reinject_io_int(kvm, inti); inti 1678 arch/s390/kvm/interrupt.c inti = tmp_inti; inti 1682 arch/s390/kvm/interrupt.c return inti; inti 1689 arch/s390/kvm/interrupt.c struct kvm_s390_interrupt_info *inti) inti 1695 arch/s390/kvm/interrupt.c fi->srv_signal.ext_params |= inti->ext.ext_params & SCCB_EVENT_PENDING; inti 1706 arch/s390/kvm/interrupt.c fi->srv_signal.ext_params |= inti->ext.ext_params & SCCB_MASK; inti 1710 arch/s390/kvm/interrupt.c kfree(inti); inti 1715 arch/s390/kvm/interrupt.c struct kvm_s390_interrupt_info *inti) inti 1726 arch/s390/kvm/interrupt.c list_add_tail(&inti->list, &fi->lists[FIRQ_LIST_VIRTIO]); inti 1733 arch/s390/kvm/interrupt.c struct kvm_s390_interrupt_info *inti) inti 1745 arch/s390/kvm/interrupt.c list_add_tail(&inti->list, &fi->lists[FIRQ_LIST_PFAULT]); inti 1753 arch/s390/kvm/interrupt.c struct kvm_s390_interrupt_info *inti) inti 1759 arch/s390/kvm/interrupt.c fi->mchk.cr14 |= inti->mchk.cr14 & (1UL << CR_PENDING_SUBCLASS); inti 1760 arch/s390/kvm/interrupt.c fi->mchk.mcic |= inti->mchk.mcic; inti 1763 arch/s390/kvm/interrupt.c kfree(inti); inti 1767 arch/s390/kvm/interrupt.c static int __inject_io(struct kvm *kvm, struct kvm_s390_interrupt_info *inti) inti 1775 arch/s390/kvm/interrupt.c isc = int_word_to_isc(inti->io.io_int_word); inti 1777 arch/s390/kvm/interrupt.c if (gi->origin && inti->type & KVM_S390_INT_IO_AI_MASK) { inti 1780 arch/s390/kvm/interrupt.c kfree(inti); inti 1792 arch/s390/kvm/interrupt.c if (inti->type & KVM_S390_INT_IO_AI_MASK) inti 1796 arch/s390/kvm/interrupt.c inti->io.subchannel_id >> 8, inti 1797 arch/s390/kvm/interrupt.c inti->io.subchannel_id >> 1 & 0x3, inti 1798 arch/s390/kvm/interrupt.c inti->io.subchannel_nr); inti 1800 arch/s390/kvm/interrupt.c list_add_tail(&inti->list, list); inti 1848 arch/s390/kvm/interrupt.c static int __inject_vm(struct kvm *kvm, struct kvm_s390_interrupt_info *inti) inti 1850 arch/s390/kvm/interrupt.c u64 type = READ_ONCE(inti->type); inti 1855 arch/s390/kvm/interrupt.c rc = __inject_float_mchk(kvm, inti); inti 1858 arch/s390/kvm/interrupt.c rc = __inject_virtio(kvm, inti); inti 1861 arch/s390/kvm/interrupt.c rc = __inject_service(kvm, inti); inti 1864 arch/s390/kvm/interrupt.c rc = __inject_pfault_done(kvm, inti); inti 1867 arch/s390/kvm/interrupt.c rc = __inject_io(kvm, inti); inti 1882 arch/s390/kvm/interrupt.c struct kvm_s390_interrupt_info *inti; inti 1885 arch/s390/kvm/interrupt.c inti = kzalloc(sizeof(*inti), GFP_KERNEL); inti 1886 arch/s390/kvm/interrupt.c if (!inti) inti 1889 arch/s390/kvm/interrupt.c inti->type = s390int->type; inti 1890 arch/s390/kvm/interrupt.c switch (inti->type) { inti 1894 arch/s390/kvm/interrupt.c inti->ext.ext_params = s390int->parm; inti 1895 arch/s390/kvm/interrupt.c inti->ext.ext_params2 = s390int->parm64; inti 1899 arch/s390/kvm/interrupt.c inti->ext.ext_params = s390int->parm; inti 1902 arch/s390/kvm/interrupt.c inti->ext.ext_params2 = s390int->parm64; inti 1907 arch/s390/kvm/interrupt.c inti->mchk.cr14 = s390int->parm; /* upper bits are not used */ inti 1908 arch/s390/kvm/interrupt.c inti->mchk.mcic = s390int->parm64; inti 1911 arch/s390/kvm/interrupt.c inti->io.subchannel_id = s390int->parm >> 16; inti 1912 arch/s390/kvm/interrupt.c inti->io.subchannel_nr = s390int->parm & 0x0000ffffu; inti 1913 arch/s390/kvm/interrupt.c inti->io.io_int_parm = s390int->parm64 >> 32; inti 1914 arch/s390/kvm/interrupt.c inti->io.io_int_word = s390int->parm64 & 0x00000000ffffffffull; inti 1917 arch/s390/kvm/interrupt.c kfree(inti); inti 1923 arch/s390/kvm/interrupt.c rc = __inject_vm(kvm, inti); inti 1925 arch/s390/kvm/interrupt.c kfree(inti); inti 1930 arch/s390/kvm/interrupt.c struct kvm_s390_interrupt_info *inti) inti 1932 arch/s390/kvm/interrupt.c return __inject_vm(kvm, inti); inti 2055 arch/s390/kvm/interrupt.c struct kvm_s390_interrupt_info *inti, *n; inti 2057 arch/s390/kvm/interrupt.c list_for_each_entry_safe(inti, n, _list, list) { inti 2058 arch/s390/kvm/interrupt.c list_del(&inti->list); inti 2059 arch/s390/kvm/interrupt.c kfree(inti); inti 2063 arch/s390/kvm/interrupt.c static void inti_to_irq(struct kvm_s390_interrupt_info *inti, inti 2066 arch/s390/kvm/interrupt.c irq->type = inti->type; inti 2067 arch/s390/kvm/interrupt.c switch (inti->type) { inti 2071 arch/s390/kvm/interrupt.c irq->u.ext = inti->ext; inti 2074 arch/s390/kvm/interrupt.c irq->u.io = inti->io; inti 2099 arch/s390/kvm/interrupt.c struct kvm_s390_interrupt_info *inti; inti 2140 arch/s390/kvm/interrupt.c list_for_each_entry(inti, &fi->lists[i], list) { inti 2146 arch/s390/kvm/interrupt.c inti_to_irq(inti, &buf[n]); inti 2226 arch/s390/kvm/interrupt.c static inline int copy_irq_from_user(struct kvm_s390_interrupt_info *inti, inti 2234 arch/s390/kvm/interrupt.c if (get_user(inti->type, (u64 __user *)addr)) inti 2237 arch/s390/kvm/interrupt.c switch (inti->type) { inti 2242 arch/s390/kvm/interrupt.c target = (void *) &inti->ext; inti 2244 arch/s390/kvm/interrupt.c size = sizeof(inti->ext); inti 2247 arch/s390/kvm/interrupt.c target = (void *) &inti->io; inti 2249 arch/s390/kvm/interrupt.c size = sizeof(inti->io); inti 2252 arch/s390/kvm/interrupt.c target = (void *) &inti->mchk; inti 2254 arch/s390/kvm/interrupt.c size = sizeof(inti->mchk); inti 2269 arch/s390/kvm/interrupt.c struct kvm_s390_interrupt_info *inti = NULL; inti 2279 arch/s390/kvm/interrupt.c inti = kzalloc(sizeof(*inti), GFP_KERNEL); inti 2280 arch/s390/kvm/interrupt.c if (!inti) inti 2283 arch/s390/kvm/interrupt.c r = copy_irq_from_user(inti, attr->addr); inti 2285 arch/s390/kvm/interrupt.c kfree(inti); inti 2288 arch/s390/kvm/interrupt.c r = __inject_vm(dev->kvm, inti); inti 2290 arch/s390/kvm/interrupt.c kfree(inti); inti 2786 arch/s390/kvm/interrupt.c struct kvm_s390_interrupt_info inti; inti 2801 arch/s390/kvm/interrupt.c mchk = mci.ck ? &inti.mchk : &irq.u.mchk; inti 2808 arch/s390/kvm/interrupt.c inti.type = KVM_S390_MCHK; inti 2809 arch/s390/kvm/interrupt.c rc = __inject_vm(vcpu->kvm, &inti); inti 3622 arch/s390/kvm/kvm-s390.c struct kvm_s390_interrupt inti; inti 3630 arch/s390/kvm/kvm-s390.c inti.type = KVM_S390_INT_PFAULT_DONE; inti 3631 arch/s390/kvm/kvm-s390.c inti.parm64 = token; inti 3632 arch/s390/kvm/kvm-s390.c WARN_ON_ONCE(kvm_s390_inject_vm(vcpu->kvm, &inti)); inti 232 arch/s390/kvm/kvm-s390.h struct kvm_s390_interrupt_info *inti); inti 470 arch/s390/kvm/priv.c struct kvm_s390_interrupt_info *inti; inti 483 arch/s390/kvm/priv.c inti = kvm_s390_get_io_int(vcpu->kvm, vcpu->arch.sie_block->gcr[6], 0); inti 484 arch/s390/kvm/priv.c if (!inti) { inti 489 arch/s390/kvm/priv.c tpi_data[0] = inti->io.subchannel_id << 16 | inti->io.subchannel_nr; inti 490 arch/s390/kvm/priv.c tpi_data[1] = inti->io.io_int_parm; inti 491 arch/s390/kvm/priv.c tpi_data[2] = inti->io.io_int_word; inti 517 arch/s390/kvm/priv.c kfree(inti); inti 526 arch/s390/kvm/priv.c if (kvm_s390_reinject_io_int(vcpu->kvm, inti)) { inti 527 arch/s390/kvm/priv.c kfree(inti); inti 536 arch/s390/kvm/priv.c struct kvm_s390_interrupt_info *inti = NULL; inti 543 arch/s390/kvm/priv.c inti = kvm_s390_get_io_int(vcpu->kvm, isc_mask, inti 555 arch/s390/kvm/priv.c vcpu->run->s390_tsch.dequeued = !!inti; inti 556 arch/s390/kvm/priv.c if (inti) { inti 557 arch/s390/kvm/priv.c vcpu->run->s390_tsch.subchannel_id = inti->io.subchannel_id; inti 558 arch/s390/kvm/priv.c vcpu->run->s390_tsch.subchannel_nr = inti->io.subchannel_nr; inti 559 arch/s390/kvm/priv.c vcpu->run->s390_tsch.io_int_parm = inti->io.io_int_parm; inti 560 arch/s390/kvm/priv.c vcpu->run->s390_tsch.io_int_word = inti->io.io_int_word; inti 563 arch/s390/kvm/priv.c kfree(inti);