• Home
  • Raw
  • Download

Lines Matching refs:fi

684 	struct kvm_s390_float_interrupt *fi = &vcpu->kvm->arch.float_int;  in __deliver_machine_check()  local
690 spin_lock(&fi->lock); in __deliver_machine_check()
712 if (test_and_clear_bit(IRQ_PEND_MCHK_REP, &fi->pending_irqs)) { in __deliver_machine_check()
713 mchk.mcic |= fi->mchk.mcic; in __deliver_machine_check()
714 mchk.cr14 |= fi->mchk.cr14; in __deliver_machine_check()
715 memset(&fi->mchk, 0, sizeof(mchk)); in __deliver_machine_check()
719 spin_unlock(&fi->lock); in __deliver_machine_check()
1005 struct kvm_s390_float_interrupt *fi = &vcpu->kvm->arch.float_int; in __deliver_service() local
1008 spin_lock(&fi->lock); in __deliver_service()
1009 if (test_bit(IRQ_PEND_EXT_SERVICE, &fi->masked_irqs) || in __deliver_service()
1010 !(test_bit(IRQ_PEND_EXT_SERVICE, &fi->pending_irqs))) { in __deliver_service()
1011 spin_unlock(&fi->lock); in __deliver_service()
1014 ext = fi->srv_signal; in __deliver_service()
1015 memset(&fi->srv_signal, 0, sizeof(ext)); in __deliver_service()
1016 clear_bit(IRQ_PEND_EXT_SERVICE, &fi->pending_irqs); in __deliver_service()
1017 clear_bit(IRQ_PEND_EXT_SERVICE_EV, &fi->pending_irqs); in __deliver_service()
1019 set_bit(IRQ_PEND_EXT_SERVICE, &fi->masked_irqs); in __deliver_service()
1020 spin_unlock(&fi->lock); in __deliver_service()
1033 struct kvm_s390_float_interrupt *fi = &vcpu->kvm->arch.float_int; in __deliver_service_ev() local
1036 spin_lock(&fi->lock); in __deliver_service_ev()
1037 if (!(test_bit(IRQ_PEND_EXT_SERVICE_EV, &fi->pending_irqs))) { in __deliver_service_ev()
1038 spin_unlock(&fi->lock); in __deliver_service_ev()
1041 ext = fi->srv_signal; in __deliver_service_ev()
1043 fi->srv_signal.ext_params &= ~SCCB_EVENT_PENDING; in __deliver_service_ev()
1044 clear_bit(IRQ_PEND_EXT_SERVICE_EV, &fi->pending_irqs); in __deliver_service_ev()
1045 spin_unlock(&fi->lock); in __deliver_service_ev()
1057 struct kvm_s390_float_interrupt *fi = &vcpu->kvm->arch.float_int; in __deliver_pfault_done() local
1061 spin_lock(&fi->lock); in __deliver_pfault_done()
1062 inti = list_first_entry_or_null(&fi->lists[FIRQ_LIST_PFAULT], in __deliver_pfault_done()
1067 fi->counters[FIRQ_CNTR_PFAULT] -= 1; in __deliver_pfault_done()
1069 if (list_empty(&fi->lists[FIRQ_LIST_PFAULT])) in __deliver_pfault_done()
1070 clear_bit(IRQ_PEND_PFAULT_DONE, &fi->pending_irqs); in __deliver_pfault_done()
1071 spin_unlock(&fi->lock); in __deliver_pfault_done()
1099 struct kvm_s390_float_interrupt *fi = &vcpu->kvm->arch.float_int; in __deliver_virtio() local
1103 spin_lock(&fi->lock); in __deliver_virtio()
1104 inti = list_first_entry_or_null(&fi->lists[FIRQ_LIST_VIRTIO], in __deliver_virtio()
1117 fi->counters[FIRQ_CNTR_VIRTIO] -= 1; in __deliver_virtio()
1119 if (list_empty(&fi->lists[FIRQ_LIST_VIRTIO])) in __deliver_virtio()
1120 clear_bit(IRQ_PEND_VIRTIO, &fi->pending_irqs); in __deliver_virtio()
1121 spin_unlock(&fi->lock); in __deliver_virtio()
1173 struct kvm_s390_float_interrupt *fi; in __deliver_io() local
1180 fi = &vcpu->kvm->arch.float_int; in __deliver_io()
1182 spin_lock(&fi->lock); in __deliver_io()
1184 isc_list = &fi->lists[isc]; in __deliver_io()
1205 fi->counters[FIRQ_CNTR_IO] -= 1; in __deliver_io()
1208 clear_bit(irq_type, &fi->pending_irqs); in __deliver_io()
1209 spin_unlock(&fi->lock); in __deliver_io()
1704 struct kvm_s390_float_interrupt *fi = &kvm->arch.float_int; in get_io_int() local
1705 struct list_head *isc_list = &fi->lists[FIRQ_LIST_IO_ISC_0 + isc]; in get_io_int()
1710 spin_lock(&fi->lock); in get_io_int()
1717 fi->counters[FIRQ_CNTR_IO] -= 1; in get_io_int()
1719 clear_bit(isc_to_irq_type(isc), &fi->pending_irqs); in get_io_int()
1720 spin_unlock(&fi->lock); in get_io_int()
1723 spin_unlock(&fi->lock); in get_io_int()
1815 struct kvm_s390_float_interrupt *fi = &kvm->arch.float_int; in __inject_service() local
1818 spin_lock(&fi->lock); in __inject_service()
1819 fi->srv_signal.ext_params |= inti->ext.ext_params & SCCB_EVENT_PENDING; in __inject_service()
1822 if (fi->srv_signal.ext_params & SCCB_EVENT_PENDING) in __inject_service()
1823 set_bit(IRQ_PEND_EXT_SERVICE_EV, &fi->pending_irqs); in __inject_service()
1833 if (fi->srv_signal.ext_params & SCCB_MASK) in __inject_service()
1835 fi->srv_signal.ext_params |= inti->ext.ext_params & SCCB_MASK; in __inject_service()
1836 set_bit(IRQ_PEND_EXT_SERVICE, &fi->pending_irqs); in __inject_service()
1838 spin_unlock(&fi->lock); in __inject_service()
1846 struct kvm_s390_float_interrupt *fi = &kvm->arch.float_int; in __inject_virtio() local
1849 spin_lock(&fi->lock); in __inject_virtio()
1850 if (fi->counters[FIRQ_CNTR_VIRTIO] >= KVM_S390_MAX_VIRTIO_IRQS) { in __inject_virtio()
1851 spin_unlock(&fi->lock); in __inject_virtio()
1854 fi->counters[FIRQ_CNTR_VIRTIO] += 1; in __inject_virtio()
1855 list_add_tail(&inti->list, &fi->lists[FIRQ_LIST_VIRTIO]); in __inject_virtio()
1856 set_bit(IRQ_PEND_VIRTIO, &fi->pending_irqs); in __inject_virtio()
1857 spin_unlock(&fi->lock); in __inject_virtio()
1864 struct kvm_s390_float_interrupt *fi = &kvm->arch.float_int; in __inject_pfault_done() local
1867 spin_lock(&fi->lock); in __inject_pfault_done()
1868 if (fi->counters[FIRQ_CNTR_PFAULT] >= in __inject_pfault_done()
1870 spin_unlock(&fi->lock); in __inject_pfault_done()
1873 fi->counters[FIRQ_CNTR_PFAULT] += 1; in __inject_pfault_done()
1874 list_add_tail(&inti->list, &fi->lists[FIRQ_LIST_PFAULT]); in __inject_pfault_done()
1875 set_bit(IRQ_PEND_PFAULT_DONE, &fi->pending_irqs); in __inject_pfault_done()
1876 spin_unlock(&fi->lock); in __inject_pfault_done()
1884 struct kvm_s390_float_interrupt *fi = &kvm->arch.float_int; in __inject_float_mchk() local
1887 spin_lock(&fi->lock); in __inject_float_mchk()
1888 fi->mchk.cr14 |= inti->mchk.cr14 & (1UL << CR_PENDING_SUBCLASS); in __inject_float_mchk()
1889 fi->mchk.mcic |= inti->mchk.mcic; in __inject_float_mchk()
1890 set_bit(IRQ_PEND_MCHK_REP, &fi->pending_irqs); in __inject_float_mchk()
1891 spin_unlock(&fi->lock); in __inject_float_mchk()
1899 struct kvm_s390_float_interrupt *fi; in __inject_io() local
1920 fi = &kvm->arch.float_int; in __inject_io()
1921 spin_lock(&fi->lock); in __inject_io()
1922 if (fi->counters[FIRQ_CNTR_IO] >= KVM_S390_MAX_FLOAT_IRQS) { in __inject_io()
1923 spin_unlock(&fi->lock); in __inject_io()
1926 fi->counters[FIRQ_CNTR_IO] += 1; in __inject_io()
1935 list = &fi->lists[FIRQ_LIST_IO_ISC_0 + isc]; in __inject_io()
1937 set_bit(isc_to_irq_type(isc), &fi->pending_irqs); in __inject_io()
1938 spin_unlock(&fi->lock); in __inject_io()
2225 struct kvm_s390_float_interrupt *fi = &kvm->arch.float_int; in kvm_s390_clear_float_irqs() local
2230 fi->masked_irqs = 0; in kvm_s390_clear_float_irqs()
2232 spin_lock(&fi->lock); in kvm_s390_clear_float_irqs()
2233 fi->pending_irqs = 0; in kvm_s390_clear_float_irqs()
2234 memset(&fi->srv_signal, 0, sizeof(fi->srv_signal)); in kvm_s390_clear_float_irqs()
2235 memset(&fi->mchk, 0, sizeof(fi->mchk)); in kvm_s390_clear_float_irqs()
2237 clear_irq_list(&fi->lists[i]); in kvm_s390_clear_float_irqs()
2239 fi->counters[i] = 0; in kvm_s390_clear_float_irqs()
2240 spin_unlock(&fi->lock); in kvm_s390_clear_float_irqs()
2248 struct kvm_s390_float_interrupt *fi; in get_all_floating_irqs() local
2285 fi = &kvm->arch.float_int; in get_all_floating_irqs()
2286 spin_lock(&fi->lock); in get_all_floating_irqs()
2288 list_for_each_entry(inti, &fi->lists[i], list) { in get_all_floating_irqs()
2298 if (test_bit(IRQ_PEND_EXT_SERVICE, &fi->pending_irqs) || in get_all_floating_irqs()
2299 test_bit(IRQ_PEND_EXT_SERVICE_EV, &fi->pending_irqs)) { in get_all_floating_irqs()
2307 irq->u.ext = fi->srv_signal; in get_all_floating_irqs()
2310 if (test_bit(IRQ_PEND_MCHK_REP, &fi->pending_irqs)) { in get_all_floating_irqs()
2318 irq->u.mchk = fi->mchk; in get_all_floating_irqs()
2323 spin_unlock(&fi->lock); in get_all_floating_irqs()
2336 struct kvm_s390_float_interrupt *fi = &kvm->arch.float_int; in flic_ais_mode_get_all() local
2345 mutex_lock(&fi->ais_lock); in flic_ais_mode_get_all()
2346 ais.simm = fi->simm; in flic_ais_mode_get_all()
2347 ais.nimm = fi->nimm; in flic_ais_mode_get_all()
2348 mutex_unlock(&fi->ais_lock); in flic_ais_mode_get_all()
2572 struct kvm_s390_float_interrupt *fi = &kvm->arch.float_int; in modify_ais_mode() local
2586 (fi->simm & AIS_MODE_MASK(req.isc)) ? in modify_ais_mode()
2587 (fi->nimm & AIS_MODE_MASK(req.isc)) ? in modify_ais_mode()
2591 mutex_lock(&fi->ais_lock); in modify_ais_mode()
2594 fi->simm &= ~AIS_MODE_MASK(req.isc); in modify_ais_mode()
2595 fi->nimm &= ~AIS_MODE_MASK(req.isc); in modify_ais_mode()
2598 fi->simm |= AIS_MODE_MASK(req.isc); in modify_ais_mode()
2599 fi->nimm &= ~AIS_MODE_MASK(req.isc); in modify_ais_mode()
2604 mutex_unlock(&fi->ais_lock); in modify_ais_mode()
2612 struct kvm_s390_float_interrupt *fi = &kvm->arch.float_int; in kvm_s390_inject_airq() local
2623 mutex_lock(&fi->ais_lock); in kvm_s390_inject_airq()
2624 if (fi->nimm & AIS_MODE_MASK(adapter->isc)) { in kvm_s390_inject_airq()
2630 if (!ret && (fi->simm & AIS_MODE_MASK(adapter->isc))) { in kvm_s390_inject_airq()
2631 fi->nimm |= AIS_MODE_MASK(adapter->isc); in kvm_s390_inject_airq()
2636 mutex_unlock(&fi->ais_lock); in kvm_s390_inject_airq()
2653 struct kvm_s390_float_interrupt *fi = &kvm->arch.float_int; in flic_ais_mode_set_all() local
2662 mutex_lock(&fi->ais_lock); in flic_ais_mode_set_all()
2663 fi->simm = ais.simm; in flic_ais_mode_set_all()
2664 fi->nimm = ais.nimm; in flic_ais_mode_set_all()
2665 mutex_unlock(&fi->ais_lock); in flic_ais_mode_set_all()