Lines Matching refs:arch
52 read_lock(&vcpu->kvm->arch.sca_lock);
53 if (vcpu->kvm->arch.use_esca) {
54 struct esca_block *sca = vcpu->kvm->arch.sca;
61 struct bsca_block *sca = vcpu->kvm->arch.sca;
68 read_unlock(&vcpu->kvm->arch.sca_lock);
81 read_lock(&vcpu->kvm->arch.sca_lock);
82 if (vcpu->kvm->arch.use_esca) {
83 struct esca_block *sca = vcpu->kvm->arch.sca;
96 struct bsca_block *sca = vcpu->kvm->arch.sca;
109 read_unlock(&vcpu->kvm->arch.sca_lock);
126 read_lock(&vcpu->kvm->arch.sca_lock);
127 if (vcpu->kvm->arch.use_esca) {
128 struct esca_block *sca = vcpu->kvm->arch.sca;
137 struct bsca_block *sca = vcpu->kvm->arch.sca;
146 read_unlock(&vcpu->kvm->arch.sca_lock);
152 return !(vcpu->arch.sie_block->gpsw.mask & PSW_MASK_EXT);
157 return !(vcpu->arch.sie_block->gpsw.mask & PSW_MASK_IO);
162 return !(vcpu->arch.sie_block->gpsw.mask & PSW_MASK_MCHECK);
175 !(vcpu->arch.sie_block->gcr[0] & CR0_CLOCK_COMPARATOR_SUBMASK))
186 const u64 ckc = vcpu->arch.sie_block->ckc;
188 if (vcpu->arch.sie_block->gcr[0] & CR0_CLOCK_COMPARATOR_SIGN) {
200 (vcpu->arch.sie_block->gcr[0] & CR0_CPU_TIMER_SUBMASK);
323 unsigned long pending = vcpu->kvm->arch.float_int.pending_irqs |
324 vcpu->arch.local_int.pending_irqs;
326 pending &= ~vcpu->kvm->arch.float_int.masked_irqs;
332 struct kvm_s390_gisa_interrupt *gi = &vcpu->kvm->arch.gisa_int;
357 if (!(vcpu->arch.sie_block->gcr[6] & isc_to_isc_bits(i)))
377 if (!(vcpu->arch.sie_block->gcr[0] & CR0_EXTERNAL_CALL_SUBMASK))
379 if (!(vcpu->arch.sie_block->gcr[0] & CR0_EMERGENCY_SIGNAL_SUBMASK))
381 if (!(vcpu->arch.sie_block->gcr[0] & CR0_CLOCK_COMPARATOR_SUBMASK))
383 if (!(vcpu->arch.sie_block->gcr[0] & CR0_CPU_TIMER_SUBMASK))
385 if (!(vcpu->arch.sie_block->gcr[0] & CR0_SERVICE_SIGNAL_SUBMASK)) {
393 vcpu->arch.sie_block->iictl != IICTL_CODE_NONE)
401 if (!(vcpu->arch.sie_block->gcr[14] &
402 (vcpu->kvm->arch.float_int.mchk.cr14 |
403 vcpu->arch.local_int.irq.mchk.cr14)))
418 set_bit(vcpu->vcpu_idx, vcpu->kvm->arch.idle_mask);
424 clear_bit(vcpu->vcpu_idx, vcpu->kvm->arch.idle_mask);
431 vcpu->arch.sie_block->lctl = 0x0000;
432 vcpu->arch.sie_block->ictl &= ~(ICTL_LPSW | ICTL_STCTL | ICTL_PINT);
435 vcpu->arch.sie_block->lctl |= (LCTL_CR0 | LCTL_CR9 |
437 vcpu->arch.sie_block->ictl |= (ICTL_STCTL | ICTL_PINT);
448 vcpu->arch.sie_block->lctl |= LCTL_CR6;
458 vcpu->arch.sie_block->lctl |= LCTL_CR0;
466 vcpu->arch.sie_block->ictl |= ICTL_LPSW;
468 vcpu->arch.sie_block->lctl |= LCTL_CR14;
488 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
495 vcpu->arch.sie_block->iictl = IICTL_CODE_EXT;
496 vcpu->arch.sie_block->eic = EXT_IRQ_CPU_TIMER;
502 &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
504 &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
512 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
519 vcpu->arch.sie_block->iictl = IICTL_CODE_EXT;
520 vcpu->arch.sie_block->eic = EXT_IRQ_CLK_COMP;
526 &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
528 &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
536 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
555 &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
557 &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
578 vcpu->arch.sie_block->iictl = IICTL_CODE_MCHK;
579 vcpu->arch.sie_block->mcic = mchk->mcic;
580 vcpu->arch.sie_block->faddr = mchk->failing_storage_address;
581 vcpu->arch.sie_block->edc = mchk->ext_damage_code;
589 if (MACHINE_HAS_GS && vcpu->arch.gs_enabled)
636 &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
638 &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
653 rc |= put_guest_lc(vcpu, vcpu->arch.sie_block->todpr,
657 rc |= put_guest_lc(vcpu, vcpu->arch.sie_block->ckc >> 8,
662 &vcpu->arch.sie_block->gcr, 128);
676 struct kvm_s390_float_interrupt *fi = &vcpu->kvm->arch.float_int;
677 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
727 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
735 vcpu->arch.sie_block->iictl = IICTL_CODE_RESTART;
739 &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
741 &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
749 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
769 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
785 vcpu->arch.sie_block->iictl = IICTL_CODE_EXT;
786 vcpu->arch.sie_block->eic = EXT_IRQ_EMERGENCY_SIG;
787 vcpu->arch.sie_block->extcpuaddr = cpu_addr;
795 &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
797 &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
803 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
819 vcpu->arch.sie_block->iictl = IICTL_CODE_EXT;
820 vcpu->arch.sie_block->eic = EXT_IRQ_EXTERNAL_CALL;
821 vcpu->arch.sie_block->extcpuaddr = extcall.code;
829 &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
830 rc |= read_guest_lc(vcpu, __LC_EXT_NEW_PSW, &vcpu->arch.sie_block->gpsw,
839 vcpu->arch.sie_block->iictl = IICTL_CODE_SPECIFICATION;
842 vcpu->arch.sie_block->iictl = IICTL_CODE_OPERAND;
852 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
958 rc |= put_guest_lc(vcpu, vcpu->arch.sie_block->gbea,
963 &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
965 &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
977 vcpu->arch.sie_block->iictl = IICTL_CODE_EXT;
978 vcpu->arch.sie_block->eic = EXT_IRQ_SERVICE_SIG;
979 vcpu->arch.sie_block->eiparams = parm;
986 &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
988 &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
997 struct kvm_s390_float_interrupt *fi = &vcpu->kvm->arch.float_int;
1025 struct kvm_s390_float_interrupt *fi = &vcpu->kvm->arch.float_int;
1049 struct kvm_s390_float_interrupt *fi = &vcpu->kvm->arch.float_int;
1077 &vcpu->arch.sie_block->gpsw,
1080 &vcpu->arch.sie_block->gpsw,
1091 struct kvm_s390_float_interrupt *fi = &vcpu->kvm->arch.float_int;
1121 &vcpu->arch.sie_block->gpsw,
1124 &vcpu->arch.sie_block->gpsw,
1140 vcpu->arch.sie_block->iictl = IICTL_CODE_IO;
1141 vcpu->arch.sie_block->subchannel_id = io->subchannel_id;
1142 vcpu->arch.sie_block->subchannel_nr = io->subchannel_nr;
1143 vcpu->arch.sie_block->io_int_parm = io->io_int_parm;
1144 vcpu->arch.sie_block->io_int_word = io->io_int_word;
1153 &vcpu->arch.sie_block->gpsw,
1156 &vcpu->arch.sie_block->gpsw,
1166 struct kvm_s390_gisa_interrupt *gi = &vcpu->kvm->arch.gisa_int;
1172 fi = &vcpu->kvm->arch.float_int;
1233 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
1252 (vcpu->arch.sie_block->gcr[0] & CR0_EXTERNAL_CALL_SUBMASK))
1268 const u64 ckc = vcpu->arch.sie_block->ckc;
1272 if (vcpu->arch.sie_block->gcr[0] & CR0_CLOCK_COMPARATOR_SIGN) {
1299 struct kvm_s390_gisa_interrupt *gi = &vcpu->kvm->arch.gisa_int;
1315 vcpu->arch.sie_block->gcr[6] >> 24))
1330 hrtimer_start(&vcpu->arch.ckc_timer, sltime, HRTIMER_MODE_REL);
1339 hrtimer_cancel(&vcpu->arch.ckc_timer);
1360 vcpu = container_of(timer, struct kvm_vcpu, arch.ckc_timer);
1375 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
1388 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
1472 struct kvm_debug_exit_arch *debug_exit = &vcpu->run->debug.arch;
1474 debug_exit->addr = vcpu->arch.sie_block->gpsw.addr;
1486 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
1528 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
1545 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
1571 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
1591 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
1617 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
1630 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
1650 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
1682 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
1696 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
1711 struct kvm_s390_float_interrupt *fi = &kvm->arch.float_int;
1749 struct kvm_s390_gisa_interrupt *gi = &kvm->arch.gisa_int;
1784 struct kvm_s390_gisa_interrupt *gi = &kvm->arch.gisa_int;
1822 struct kvm_s390_float_interrupt *fi = &kvm->arch.float_int;
1853 struct kvm_s390_float_interrupt *fi = &kvm->arch.float_int;
1871 struct kvm_s390_float_interrupt *fi = &kvm->arch.float_int;
1891 struct kvm_s390_float_interrupt *fi = &kvm->arch.float_int;
1905 struct kvm_s390_gisa_interrupt *gi = &kvm->arch.gisa_int;
1926 fi = &kvm->arch.float_int;
1961 sigcpu = find_first_bit(kvm->arch.idle_mask, online_vcpus);
1964 sigcpu = kvm->arch.float_int.next_rr_cpu++;
1965 kvm->arch.float_int.next_rr_cpu %= online_vcpus;
1980 kvm->arch.gisa_int.origin) ||
2123 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
2130 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
2137 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
2192 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
2231 struct kvm_s390_float_interrupt *fi = &kvm->arch.float_int;
2252 struct kvm_s390_gisa_interrupt *gi = &kvm->arch.gisa_int;
2291 fi = &kvm->arch.float_int;
2342 struct kvm_s390_float_interrupt *fi = &kvm->arch.float_int;
2460 return kvm->arch.adapters[id];
2479 if (dev->kvm->arch.adapters[adapter_info.id] != NULL)
2493 dev->kvm->arch.adapters[adapter->id] = adapter;
2515 kfree(kvm->arch.adapters[i]);
2578 struct kvm_s390_float_interrupt *fi = &kvm->arch.float_int;
2618 struct kvm_s390_float_interrupt *fi = &kvm->arch.float_int;
2659 struct kvm_s390_float_interrupt *fi = &kvm->arch.float_int;
2690 dev->kvm->arch.gmap->pfault_enabled = 1;
2693 dev->kvm->arch.gmap->pfault_enabled = 0;
2752 if (dev->kvm->arch.flic)
2754 dev->kvm->arch.flic = dev;
2760 dev->kvm->arch.flic = NULL;
2907 uaddr = gmap_translate(kvm->arch.gmap, ue->u.adapter.summary_addr);
2911 uaddr = gmap_translate(kvm->arch.gmap, ue->u.adapter.ind_addr);
2932 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
3016 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
3035 store_local_irq(&vcpu->arch.local_int, &irq, irq_type);
3071 struct kvm_s390_gisa_interrupt *gi = &kvm->arch.gisa_int;
3075 for_each_set_bit(vcpu_idx, kvm->arch.idle_mask, online_vcpus) {
3079 vcpu_isc_mask = (u8)(vcpu->arch.sie_block->gcr[6] >> 24);
3148 gi = &kvm->arch.gisa_int;
3159 struct kvm_s390_gisa_interrupt *gi = &kvm->arch.gisa_int;
3169 struct kvm_s390_gisa_interrupt *gi = &kvm->arch.gisa_int;
3173 gi->origin = &kvm->arch.sie_page2->gisa;
3186 struct kvm_s390_gisa_interrupt *gi = &kvm->arch.gisa_int;
3199 vcpu->arch.sie_block->gd = gisa_desc;
3200 vcpu->arch.sie_block->eca |= ECA_AIV;
3202 vcpu->arch.sie_block->gd & 0x3, vcpu->vcpu_id);
3209 struct kvm_s390_gisa_interrupt *gi = &kvm->arch.gisa_int;
3227 struct kvm_s390_gisa_interrupt *gi = &kvm->arch.gisa_int;
3235 vcpu->arch.sie_block->eca &= ~ECA_AIV;
3236 vcpu->arch.sie_block->gd = 0U;
3262 struct kvm_s390_gisa_interrupt *gi = &kvm->arch.gisa_int;
3301 struct kvm_s390_gisa_interrupt *gi = &kvm->arch.gisa_int;
3342 gi = &kvm->arch.gisa_int;