Lines Matching refs:arch

52 	read_lock(&vcpu->kvm->arch.sca_lock);  in sca_ext_call_pending()
53 if (vcpu->kvm->arch.use_esca) { in sca_ext_call_pending()
54 struct esca_block *sca = vcpu->kvm->arch.sca; in sca_ext_call_pending()
61 struct bsca_block *sca = vcpu->kvm->arch.sca; in sca_ext_call_pending()
68 read_unlock(&vcpu->kvm->arch.sca_lock); in sca_ext_call_pending()
81 read_lock(&vcpu->kvm->arch.sca_lock); in sca_inject_ext_call()
82 if (vcpu->kvm->arch.use_esca) { in sca_inject_ext_call()
83 struct esca_block *sca = vcpu->kvm->arch.sca; in sca_inject_ext_call()
96 struct bsca_block *sca = vcpu->kvm->arch.sca; in sca_inject_ext_call()
109 read_unlock(&vcpu->kvm->arch.sca_lock); in sca_inject_ext_call()
126 read_lock(&vcpu->kvm->arch.sca_lock); in sca_clear_ext_call()
127 if (vcpu->kvm->arch.use_esca) { in sca_clear_ext_call()
128 struct esca_block *sca = vcpu->kvm->arch.sca; in sca_clear_ext_call()
137 struct bsca_block *sca = vcpu->kvm->arch.sca; in sca_clear_ext_call()
146 read_unlock(&vcpu->kvm->arch.sca_lock); in sca_clear_ext_call()
152 return !(vcpu->arch.sie_block->gpsw.mask & PSW_MASK_EXT); in psw_extint_disabled()
157 return !(vcpu->arch.sie_block->gpsw.mask & PSW_MASK_IO); in psw_ioint_disabled()
162 return !(vcpu->arch.sie_block->gpsw.mask & PSW_MASK_MCHECK); in psw_mchk_disabled()
175 !(vcpu->arch.sie_block->gcr[0] & CR0_CLOCK_COMPARATOR_SUBMASK)) in ckc_interrupts_enabled()
186 const u64 ckc = vcpu->arch.sie_block->ckc; in ckc_irq_pending()
188 if (vcpu->arch.sie_block->gcr[0] & CR0_CLOCK_COMPARATOR_SIGN) { in ckc_irq_pending()
200 (vcpu->arch.sie_block->gcr[0] & CR0_CPU_TIMER_SUBMASK); in cpu_timer_interrupts_enabled()
323 unsigned long pending = vcpu->kvm->arch.float_int.pending_irqs | in pending_irqs_no_gisa()
324 vcpu->arch.local_int.pending_irqs; in pending_irqs_no_gisa()
326 pending &= ~vcpu->kvm->arch.float_int.masked_irqs; in pending_irqs_no_gisa()
332 struct kvm_s390_gisa_interrupt *gi = &vcpu->kvm->arch.gisa_int; in pending_irqs()
357 if (!(vcpu->arch.sie_block->gcr[6] & isc_to_isc_bits(i))) in disable_iscs()
377 if (!(vcpu->arch.sie_block->gcr[0] & CR0_EXTERNAL_CALL_SUBMASK)) in deliverable_irqs()
379 if (!(vcpu->arch.sie_block->gcr[0] & CR0_EMERGENCY_SIGNAL_SUBMASK)) in deliverable_irqs()
381 if (!(vcpu->arch.sie_block->gcr[0] & CR0_CLOCK_COMPARATOR_SUBMASK)) in deliverable_irqs()
383 if (!(vcpu->arch.sie_block->gcr[0] & CR0_CPU_TIMER_SUBMASK)) in deliverable_irqs()
385 if (!(vcpu->arch.sie_block->gcr[0] & CR0_SERVICE_SIGNAL_SUBMASK)) { in deliverable_irqs()
393 vcpu->arch.sie_block->iictl != IICTL_CODE_NONE) in deliverable_irqs()
401 if (!(vcpu->arch.sie_block->gcr[14] & in deliverable_irqs()
402 (vcpu->kvm->arch.float_int.mchk.cr14 | in deliverable_irqs()
403 vcpu->arch.local_int.irq.mchk.cr14))) in deliverable_irqs()
418 set_bit(vcpu->vcpu_idx, vcpu->kvm->arch.idle_mask); in __set_cpu_idle()
424 clear_bit(vcpu->vcpu_idx, vcpu->kvm->arch.idle_mask); in __unset_cpu_idle()
431 vcpu->arch.sie_block->lctl = 0x0000; in __reset_intercept_indicators()
432 vcpu->arch.sie_block->ictl &= ~(ICTL_LPSW | ICTL_STCTL | ICTL_PINT); in __reset_intercept_indicators()
435 vcpu->arch.sie_block->lctl |= (LCTL_CR0 | LCTL_CR9 | in __reset_intercept_indicators()
437 vcpu->arch.sie_block->ictl |= (ICTL_STCTL | ICTL_PINT); in __reset_intercept_indicators()
448 vcpu->arch.sie_block->lctl |= LCTL_CR6; in set_intercept_indicators_io()
458 vcpu->arch.sie_block->lctl |= LCTL_CR0; in set_intercept_indicators_ext()
466 vcpu->arch.sie_block->ictl |= ICTL_LPSW; in set_intercept_indicators_mchk()
468 vcpu->arch.sie_block->lctl |= LCTL_CR14; in set_intercept_indicators_mchk()
488 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; in __deliver_cpu_timer()
495 vcpu->arch.sie_block->iictl = IICTL_CODE_EXT; in __deliver_cpu_timer()
496 vcpu->arch.sie_block->eic = EXT_IRQ_CPU_TIMER; in __deliver_cpu_timer()
502 &vcpu->arch.sie_block->gpsw, sizeof(psw_t)); in __deliver_cpu_timer()
504 &vcpu->arch.sie_block->gpsw, sizeof(psw_t)); in __deliver_cpu_timer()
512 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; in __deliver_ckc()
519 vcpu->arch.sie_block->iictl = IICTL_CODE_EXT; in __deliver_ckc()
520 vcpu->arch.sie_block->eic = EXT_IRQ_CLK_COMP; in __deliver_ckc()
526 &vcpu->arch.sie_block->gpsw, sizeof(psw_t)); in __deliver_ckc()
528 &vcpu->arch.sie_block->gpsw, sizeof(psw_t)); in __deliver_ckc()
536 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; in __deliver_pfault_init()
555 &vcpu->arch.sie_block->gpsw, sizeof(psw_t)); in __deliver_pfault_init()
557 &vcpu->arch.sie_block->gpsw, sizeof(psw_t)); in __deliver_pfault_init()
578 vcpu->arch.sie_block->iictl = IICTL_CODE_MCHK; in __write_machine_check()
579 vcpu->arch.sie_block->mcic = mchk->mcic; in __write_machine_check()
580 vcpu->arch.sie_block->faddr = mchk->failing_storage_address; in __write_machine_check()
581 vcpu->arch.sie_block->edc = mchk->ext_damage_code; in __write_machine_check()
589 if (MACHINE_HAS_GS && vcpu->arch.gs_enabled) in __write_machine_check()
636 &vcpu->arch.sie_block->gpsw, sizeof(psw_t)); in __write_machine_check()
638 &vcpu->arch.sie_block->gpsw, sizeof(psw_t)); in __write_machine_check()
653 rc |= put_guest_lc(vcpu, vcpu->arch.sie_block->todpr, in __write_machine_check()
657 rc |= put_guest_lc(vcpu, vcpu->arch.sie_block->ckc >> 8, in __write_machine_check()
662 &vcpu->arch.sie_block->gcr, 128); in __write_machine_check()
676 struct kvm_s390_float_interrupt *fi = &vcpu->kvm->arch.float_int; in __deliver_machine_check()
677 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; in __deliver_machine_check()
727 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; in __deliver_restart()
735 vcpu->arch.sie_block->iictl = IICTL_CODE_RESTART; in __deliver_restart()
739 &vcpu->arch.sie_block->gpsw, sizeof(psw_t)); in __deliver_restart()
741 &vcpu->arch.sie_block->gpsw, sizeof(psw_t)); in __deliver_restart()
749 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; in __deliver_set_prefix()
769 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; in __deliver_emergency_signal()
785 vcpu->arch.sie_block->iictl = IICTL_CODE_EXT; in __deliver_emergency_signal()
786 vcpu->arch.sie_block->eic = EXT_IRQ_EMERGENCY_SIG; in __deliver_emergency_signal()
787 vcpu->arch.sie_block->extcpuaddr = cpu_addr; in __deliver_emergency_signal()
795 &vcpu->arch.sie_block->gpsw, sizeof(psw_t)); in __deliver_emergency_signal()
797 &vcpu->arch.sie_block->gpsw, sizeof(psw_t)); in __deliver_emergency_signal()
803 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; in __deliver_external_call()
819 vcpu->arch.sie_block->iictl = IICTL_CODE_EXT; in __deliver_external_call()
820 vcpu->arch.sie_block->eic = EXT_IRQ_EXTERNAL_CALL; in __deliver_external_call()
821 vcpu->arch.sie_block->extcpuaddr = extcall.code; in __deliver_external_call()
829 &vcpu->arch.sie_block->gpsw, sizeof(psw_t)); in __deliver_external_call()
830 rc |= read_guest_lc(vcpu, __LC_EXT_NEW_PSW, &vcpu->arch.sie_block->gpsw, in __deliver_external_call()
839 vcpu->arch.sie_block->iictl = IICTL_CODE_SPECIFICATION; in __deliver_prog_pv()
842 vcpu->arch.sie_block->iictl = IICTL_CODE_OPERAND; in __deliver_prog_pv()
852 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; in __deliver_prog()
958 rc |= put_guest_lc(vcpu, vcpu->arch.sie_block->gbea, in __deliver_prog()
963 &vcpu->arch.sie_block->gpsw, sizeof(psw_t)); in __deliver_prog()
965 &vcpu->arch.sie_block->gpsw, sizeof(psw_t)); in __deliver_prog()
977 vcpu->arch.sie_block->iictl = IICTL_CODE_EXT; in write_sclp()
978 vcpu->arch.sie_block->eic = EXT_IRQ_SERVICE_SIG; in write_sclp()
979 vcpu->arch.sie_block->eiparams = parm; in write_sclp()
986 &vcpu->arch.sie_block->gpsw, sizeof(psw_t)); in write_sclp()
988 &vcpu->arch.sie_block->gpsw, sizeof(psw_t)); in write_sclp()
997 struct kvm_s390_float_interrupt *fi = &vcpu->kvm->arch.float_int; in __deliver_service()
1025 struct kvm_s390_float_interrupt *fi = &vcpu->kvm->arch.float_int; in __deliver_service_ev()
1049 struct kvm_s390_float_interrupt *fi = &vcpu->kvm->arch.float_int; in __deliver_pfault_done()
1077 &vcpu->arch.sie_block->gpsw, in __deliver_pfault_done()
1080 &vcpu->arch.sie_block->gpsw, in __deliver_pfault_done()
1091 struct kvm_s390_float_interrupt *fi = &vcpu->kvm->arch.float_int; in __deliver_virtio()
1121 &vcpu->arch.sie_block->gpsw, in __deliver_virtio()
1124 &vcpu->arch.sie_block->gpsw, in __deliver_virtio()
1140 vcpu->arch.sie_block->iictl = IICTL_CODE_IO; in __do_deliver_io()
1141 vcpu->arch.sie_block->subchannel_id = io->subchannel_id; in __do_deliver_io()
1142 vcpu->arch.sie_block->subchannel_nr = io->subchannel_nr; in __do_deliver_io()
1143 vcpu->arch.sie_block->io_int_parm = io->io_int_parm; in __do_deliver_io()
1144 vcpu->arch.sie_block->io_int_word = io->io_int_word; in __do_deliver_io()
1153 &vcpu->arch.sie_block->gpsw, in __do_deliver_io()
1156 &vcpu->arch.sie_block->gpsw, in __do_deliver_io()
1166 struct kvm_s390_gisa_interrupt *gi = &vcpu->kvm->arch.gisa_int; in __deliver_io()
1172 fi = &vcpu->kvm->arch.float_int; in __deliver_io()
1233 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; in kvm_s390_ext_call_pending()
1252 (vcpu->arch.sie_block->gcr[0] & CR0_EXTERNAL_CALL_SUBMASK)) in kvm_s390_vcpu_has_irq()
1268 const u64 ckc = vcpu->arch.sie_block->ckc; in __calculate_sltime()
1272 if (vcpu->arch.sie_block->gcr[0] & CR0_CLOCK_COMPARATOR_SIGN) { in __calculate_sltime()
1299 struct kvm_s390_gisa_interrupt *gi = &vcpu->kvm->arch.gisa_int; in kvm_s390_handle_wait()
1315 vcpu->arch.sie_block->gcr[6] >> 24)) in kvm_s390_handle_wait()
1330 hrtimer_start(&vcpu->arch.ckc_timer, sltime, HRTIMER_MODE_REL); in kvm_s390_handle_wait()
1339 hrtimer_cancel(&vcpu->arch.ckc_timer); in kvm_s390_handle_wait()
1360 vcpu = container_of(timer, struct kvm_vcpu, arch.ckc_timer); in kvm_s390_idle_wakeup()
1375 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; in kvm_s390_clear_local_irqs()
1388 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; in kvm_s390_deliver_pending_interrupts()
1472 struct kvm_debug_exit_arch *debug_exit = &vcpu->run->debug.arch; in kvm_s390_deliver_pending_interrupts()
1474 debug_exit->addr = vcpu->arch.sie_block->gpsw.addr; in kvm_s390_deliver_pending_interrupts()
1486 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; in __inject_prog()
1528 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; in __inject_pfault_init()
1545 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; in __inject_extcall()
1571 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; in __inject_set_prefix()
1591 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; in __inject_sigp_stop()
1617 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; in __inject_sigp_restart()
1630 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; in __inject_sigp_emergency()
1650 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; in __inject_mchk()
1682 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; in __inject_ckc()
1696 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; in __inject_cpu_timer()
1711 struct kvm_s390_float_interrupt *fi = &kvm->arch.float_int; in get_io_int()
1749 struct kvm_s390_gisa_interrupt *gi = &kvm->arch.gisa_int; in get_top_gisa_isc()
1784 struct kvm_s390_gisa_interrupt *gi = &kvm->arch.gisa_int; in kvm_s390_get_io_int()
1822 struct kvm_s390_float_interrupt *fi = &kvm->arch.float_int; in __inject_service()
1853 struct kvm_s390_float_interrupt *fi = &kvm->arch.float_int; in __inject_virtio()
1871 struct kvm_s390_float_interrupt *fi = &kvm->arch.float_int; in __inject_pfault_done()
1891 struct kvm_s390_float_interrupt *fi = &kvm->arch.float_int; in __inject_float_mchk()
1905 struct kvm_s390_gisa_interrupt *gi = &kvm->arch.gisa_int; in __inject_io()
1926 fi = &kvm->arch.float_int; in __inject_io()
1961 sigcpu = find_first_bit(kvm->arch.idle_mask, online_vcpus); in __floating_irq_kick()
1964 sigcpu = kvm->arch.float_int.next_rr_cpu++; in __floating_irq_kick()
1965 kvm->arch.float_int.next_rr_cpu %= online_vcpus; in __floating_irq_kick()
1980 kvm->arch.gisa_int.origin) || in __floating_irq_kick()
2123 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; in kvm_s390_is_stop_irq_pending()
2130 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; in kvm_s390_is_restart_irq_pending()
2137 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; in kvm_s390_clear_stop_irq()
2192 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; in kvm_s390_inject_vcpu()
2231 struct kvm_s390_float_interrupt *fi = &kvm->arch.float_int; in kvm_s390_clear_float_irqs()
2252 struct kvm_s390_gisa_interrupt *gi = &kvm->arch.gisa_int; in get_all_floating_irqs()
2291 fi = &kvm->arch.float_int; in get_all_floating_irqs()
2342 struct kvm_s390_float_interrupt *fi = &kvm->arch.float_int; in flic_ais_mode_get_all()
2460 return kvm->arch.adapters[id]; in get_io_adapter()
2479 if (dev->kvm->arch.adapters[adapter_info.id] != NULL) in register_io_adapter()
2493 dev->kvm->arch.adapters[adapter->id] = adapter; in register_io_adapter()
2515 kfree(kvm->arch.adapters[i]); in kvm_s390_destroy_adapters()
2578 struct kvm_s390_float_interrupt *fi = &kvm->arch.float_int; in modify_ais_mode()
2618 struct kvm_s390_float_interrupt *fi = &kvm->arch.float_int; in kvm_s390_inject_airq()
2659 struct kvm_s390_float_interrupt *fi = &kvm->arch.float_int; in flic_ais_mode_set_all()
2690 dev->kvm->arch.gmap->pfault_enabled = 1; in flic_set_attr()
2693 dev->kvm->arch.gmap->pfault_enabled = 0; in flic_set_attr()
2752 if (dev->kvm->arch.flic) in flic_create()
2754 dev->kvm->arch.flic = dev; in flic_create()
2760 dev->kvm->arch.flic = NULL; in flic_destroy()
2907 uaddr = gmap_translate(kvm->arch.gmap, ue->u.adapter.summary_addr); in kvm_set_routing_entry()
2911 uaddr = gmap_translate(kvm->arch.gmap, ue->u.adapter.ind_addr); in kvm_set_routing_entry()
2932 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; in kvm_s390_set_irq_state()
3016 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; in kvm_s390_get_irq_state()
3035 store_local_irq(&vcpu->arch.local_int, &irq, irq_type); in kvm_s390_get_irq_state()
3071 struct kvm_s390_gisa_interrupt *gi = &kvm->arch.gisa_int; in __airqs_kick_single_vcpu()
3075 for_each_set_bit(vcpu_idx, kvm->arch.idle_mask, online_vcpus) { in __airqs_kick_single_vcpu()
3079 vcpu_isc_mask = (u8)(vcpu->arch.sie_block->gcr[6] >> 24); in __airqs_kick_single_vcpu()
3148 gi = &kvm->arch.gisa_int; in process_gib_alert_list()
3159 struct kvm_s390_gisa_interrupt *gi = &kvm->arch.gisa_int; in kvm_s390_gisa_clear()
3169 struct kvm_s390_gisa_interrupt *gi = &kvm->arch.gisa_int; in kvm_s390_gisa_init()
3173 gi->origin = &kvm->arch.sie_page2->gisa; in kvm_s390_gisa_init()
3186 struct kvm_s390_gisa_interrupt *gi = &kvm->arch.gisa_int; in kvm_s390_gisa_enable()
3199 vcpu->arch.sie_block->gd = gisa_desc; in kvm_s390_gisa_enable()
3200 vcpu->arch.sie_block->eca |= ECA_AIV; in kvm_s390_gisa_enable()
3202 vcpu->arch.sie_block->gd & 0x3, vcpu->vcpu_id); in kvm_s390_gisa_enable()
3209 struct kvm_s390_gisa_interrupt *gi = &kvm->arch.gisa_int; in kvm_s390_gisa_destroy()
3227 struct kvm_s390_gisa_interrupt *gi = &kvm->arch.gisa_int; in kvm_s390_gisa_disable()
3235 vcpu->arch.sie_block->eca &= ~ECA_AIV; in kvm_s390_gisa_disable()
3236 vcpu->arch.sie_block->gd = 0U; in kvm_s390_gisa_disable()
3262 struct kvm_s390_gisa_interrupt *gi = &kvm->arch.gisa_int; in kvm_s390_gisc_register()
3301 struct kvm_s390_gisa_interrupt *gi = &kvm->arch.gisa_int; in kvm_s390_gisc_unregister()
3342 gi = &kvm->arch.gisa_int; in aen_host_forward()