Lines Matching refs:li
257 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; in __deliver_cpu_timer() local
270 clear_bit(IRQ_PEND_EXT_CPU_TIMER, &li->pending_irqs); in __deliver_cpu_timer()
276 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; in __deliver_ckc() local
289 clear_bit(IRQ_PEND_EXT_CLOCK_COMP, &li->pending_irqs); in __deliver_ckc()
295 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; in __deliver_pfault_init() local
299 spin_lock(&li->lock); in __deliver_pfault_init()
300 ext = li->irq.ext; in __deliver_pfault_init()
301 clear_bit(IRQ_PEND_PFAULT_INIT, &li->pending_irqs); in __deliver_pfault_init()
302 li->irq.ext.ext_params2 = 0; in __deliver_pfault_init()
303 spin_unlock(&li->lock); in __deliver_pfault_init()
324 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; in __deliver_machine_check() local
331 spin_lock(&li->lock); in __deliver_machine_check()
332 if (test_bit(IRQ_PEND_MCHK_EX, &li->pending_irqs) || in __deliver_machine_check()
333 test_bit(IRQ_PEND_MCHK_REP, &li->pending_irqs)) { in __deliver_machine_check()
340 mchk = li->irq.mchk; in __deliver_machine_check()
341 clear_bit(IRQ_PEND_MCHK_EX, &li->pending_irqs); in __deliver_machine_check()
342 clear_bit(IRQ_PEND_MCHK_REP, &li->pending_irqs); in __deliver_machine_check()
343 memset(&li->irq.mchk, 0, sizeof(mchk)); in __deliver_machine_check()
358 spin_unlock(&li->lock); in __deliver_machine_check()
394 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; in __deliver_restart() local
406 clear_bit(IRQ_PEND_RESTART, &li->pending_irqs); in __deliver_restart()
412 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; in __deliver_set_prefix() local
415 spin_lock(&li->lock); in __deliver_set_prefix()
416 prefix = li->irq.prefix; in __deliver_set_prefix()
417 li->irq.prefix.address = 0; in __deliver_set_prefix()
418 clear_bit(IRQ_PEND_SET_PREFIX, &li->pending_irqs); in __deliver_set_prefix()
419 spin_unlock(&li->lock); in __deliver_set_prefix()
432 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; in __deliver_emergency_signal() local
436 spin_lock(&li->lock); in __deliver_emergency_signal()
437 cpu_addr = find_first_bit(li->sigp_emerg_pending, KVM_MAX_VCPUS); in __deliver_emergency_signal()
438 clear_bit(cpu_addr, li->sigp_emerg_pending); in __deliver_emergency_signal()
439 if (bitmap_empty(li->sigp_emerg_pending, KVM_MAX_VCPUS)) in __deliver_emergency_signal()
440 clear_bit(IRQ_PEND_EXT_EMERGENCY, &li->pending_irqs); in __deliver_emergency_signal()
441 spin_unlock(&li->lock); in __deliver_emergency_signal()
460 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; in __deliver_external_call() local
464 spin_lock(&li->lock); in __deliver_external_call()
465 extcall = li->irq.extcall; in __deliver_external_call()
466 li->irq.extcall.code = 0; in __deliver_external_call()
467 clear_bit(IRQ_PEND_EXT_EXTERNAL, &li->pending_irqs); in __deliver_external_call()
468 spin_unlock(&li->lock); in __deliver_external_call()
488 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; in __deliver_prog() local
493 spin_lock(&li->lock); in __deliver_prog()
494 pgm_info = li->irq.pgm; in __deliver_prog()
495 clear_bit(IRQ_PEND_PROG, &li->pending_irqs); in __deliver_prog()
496 memset(&li->irq.pgm, 0, sizeof(pgm_info)); in __deliver_prog()
497 spin_unlock(&li->lock); in __deliver_prog()
794 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; in kvm_s390_ext_call_pending() local
798 return test_bit(IRQ_PEND_EXT_EXTERNAL, &li->pending_irqs); in kvm_s390_ext_call_pending()
904 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; in kvm_s390_clear_local_irqs() local
906 spin_lock(&li->lock); in kvm_s390_clear_local_irqs()
907 li->pending_irqs = 0; in kvm_s390_clear_local_irqs()
908 bitmap_zero(li->sigp_emerg_pending, KVM_MAX_VCPUS); in kvm_s390_clear_local_irqs()
909 memset(&li->irq, 0, sizeof(li->irq)); in kvm_s390_clear_local_irqs()
910 spin_unlock(&li->lock); in kvm_s390_clear_local_irqs()
913 atomic_andnot(CPUSTAT_ECALL_PEND, li->cpuflags); in kvm_s390_clear_local_irqs()
919 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; in kvm_s390_deliver_pending_interrupts() local
928 clear_bit(IRQ_PEND_EXT_CLOCK_COMP, &li->pending_irqs); in kvm_s390_deliver_pending_interrupts()
930 set_bit(IRQ_PEND_EXT_CLOCK_COMP, &li->pending_irqs); in kvm_s390_deliver_pending_interrupts()
933 clear_bit(IRQ_PEND_EXT_CPU_TIMER, &li->pending_irqs); in kvm_s390_deliver_pending_interrupts()
935 set_bit(IRQ_PEND_EXT_CPU_TIMER, &li->pending_irqs); in kvm_s390_deliver_pending_interrupts()
946 clear_bit(irq_type, &li->pending_irqs); in kvm_s390_deliver_pending_interrupts()
960 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; in __inject_prog() local
967 li->irq.pgm.code |= PGM_PER; in __inject_prog()
969 li->irq.pgm.per_address = irq->u.pgm.per_address; in __inject_prog()
970 li->irq.pgm.per_code = irq->u.pgm.per_code; in __inject_prog()
971 li->irq.pgm.per_atmid = irq->u.pgm.per_atmid; in __inject_prog()
972 li->irq.pgm.per_access_id = irq->u.pgm.per_access_id; in __inject_prog()
974 li->irq.pgm.code = (li->irq.pgm.code & PGM_PER) | in __inject_prog()
977 li->irq.pgm.trans_exc_code = irq->u.pgm.trans_exc_code; in __inject_prog()
978 li->irq.pgm.mon_code = irq->u.pgm.mon_code; in __inject_prog()
979 li->irq.pgm.data_exc_code = irq->u.pgm.data_exc_code; in __inject_prog()
980 li->irq.pgm.mon_class_nr = irq->u.pgm.mon_class_nr; in __inject_prog()
981 li->irq.pgm.exc_access_id = irq->u.pgm.exc_access_id; in __inject_prog()
982 li->irq.pgm.op_access_id = irq->u.pgm.op_access_id; in __inject_prog()
984 li->irq.pgm = irq->u.pgm; in __inject_prog()
986 set_bit(IRQ_PEND_PROG, &li->pending_irqs); in __inject_prog()
992 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; in __inject_pfault_init() local
1000 li->irq.ext = irq->u.ext; in __inject_pfault_init()
1001 set_bit(IRQ_PEND_PFAULT_INIT, &li->pending_irqs); in __inject_pfault_init()
1002 atomic_or(CPUSTAT_EXT_INT, li->cpuflags); in __inject_pfault_init()
1023 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; in __inject_extcall() local
1024 struct kvm_s390_extcall_info *extcall = &li->irq.extcall; in __inject_extcall()
1039 if (test_and_set_bit(IRQ_PEND_EXT_EXTERNAL, &li->pending_irqs)) in __inject_extcall()
1042 atomic_or(CPUSTAT_EXT_INT, li->cpuflags); in __inject_extcall()
1048 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; in __inject_set_prefix() local
1049 struct kvm_s390_prefix_info *prefix = &li->irq.prefix; in __inject_set_prefix()
1060 set_bit(IRQ_PEND_SET_PREFIX, &li->pending_irqs); in __inject_set_prefix()
1067 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; in __inject_sigp_stop() local
1068 struct kvm_s390_stop_info *stop = &li->irq.stop; in __inject_sigp_stop()
1083 if (test_and_set_bit(IRQ_PEND_SIGP_STOP, &li->pending_irqs)) in __inject_sigp_stop()
1093 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; in __inject_sigp_restart() local
1098 set_bit(IRQ_PEND_RESTART, &li->pending_irqs); in __inject_sigp_restart()
1105 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; in __inject_sigp_emergency() local
1116 set_bit(irq->u.emerg.code, li->sigp_emerg_pending); in __inject_sigp_emergency()
1117 set_bit(IRQ_PEND_EXT_EMERGENCY, &li->pending_irqs); in __inject_sigp_emergency()
1118 atomic_or(CPUSTAT_EXT_INT, li->cpuflags); in __inject_sigp_emergency()
1124 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; in __inject_mchk() local
1125 struct kvm_s390_mchk_info *mchk = &li->irq.mchk; in __inject_mchk()
1147 set_bit(IRQ_PEND_MCHK_EX, &li->pending_irqs); in __inject_mchk()
1149 set_bit(IRQ_PEND_MCHK_REP, &li->pending_irqs); in __inject_mchk()
1155 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; in __inject_ckc() local
1161 set_bit(IRQ_PEND_EXT_CLOCK_COMP, &li->pending_irqs); in __inject_ckc()
1162 atomic_or(CPUSTAT_EXT_INT, li->cpuflags); in __inject_ckc()
1168 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; in __inject_cpu_timer() local
1174 set_bit(IRQ_PEND_EXT_CPU_TIMER, &li->pending_irqs); in __inject_cpu_timer()
1175 atomic_or(CPUSTAT_EXT_INT, li->cpuflags); in __inject_cpu_timer()
1328 struct kvm_s390_local_interrupt *li; in __floating_irq_kick() local
1350 li = &dst_vcpu->arch.local_int; in __floating_irq_kick()
1351 spin_lock(&li->lock); in __floating_irq_kick()
1354 atomic_or(CPUSTAT_STOP_INT, li->cpuflags); in __floating_irq_kick()
1357 atomic_or(CPUSTAT_IO_INT, li->cpuflags); in __floating_irq_kick()
1360 atomic_or(CPUSTAT_EXT_INT, li->cpuflags); in __floating_irq_kick()
1363 spin_unlock(&li->lock); in __floating_irq_kick()
1496 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; in kvm_s390_is_stop_irq_pending() local
1498 return test_bit(IRQ_PEND_SIGP_STOP, &li->pending_irqs); in kvm_s390_is_stop_irq_pending()
1503 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; in kvm_s390_clear_stop_irq() local
1505 spin_lock(&li->lock); in kvm_s390_clear_stop_irq()
1506 li->irq.stop.flags = 0; in kvm_s390_clear_stop_irq()
1507 clear_bit(IRQ_PEND_SIGP_STOP, &li->pending_irqs); in kvm_s390_clear_stop_irq()
1508 spin_unlock(&li->lock); in kvm_s390_clear_stop_irq()
1558 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; in kvm_s390_inject_vcpu() local
1561 spin_lock(&li->lock); in kvm_s390_inject_vcpu()
1563 spin_unlock(&li->lock); in kvm_s390_inject_vcpu()
2124 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; in kvm_s390_set_irq_state() local
2142 spin_lock(&li->lock); in kvm_s390_set_irq_state()
2143 if (li->pending_irqs) { in kvm_s390_set_irq_state()
2155 spin_unlock(&li->lock); in kvm_s390_set_irq_state()
2162 static void store_local_irq(struct kvm_s390_local_interrupt *li, in store_local_irq() argument
2170 irq->u.mchk = li->irq.mchk; in store_local_irq()
2174 irq->u.pgm = li->irq.pgm; in store_local_irq()
2178 irq->u.ext = li->irq.ext; in store_local_irq()
2182 irq->u.extcall = li->irq.extcall; in store_local_irq()
2192 irq->u.stop = li->irq.stop; in store_local_irq()
2199 irq->u.prefix = li->irq.prefix; in store_local_irq()
2208 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; in kvm_s390_get_irq_state() local
2215 spin_lock(&li->lock); in kvm_s390_get_irq_state()
2216 pending_irqs = li->pending_irqs; in kvm_s390_get_irq_state()
2217 memcpy(&sigp_emerg_pending, &li->sigp_emerg_pending, in kvm_s390_get_irq_state()
2219 spin_unlock(&li->lock); in kvm_s390_get_irq_state()