Lines Matching refs:arch
50 read_lock(&vcpu->kvm->arch.sca_lock);
51 if (vcpu->kvm->arch.use_esca) {
52 struct esca_block *sca = vcpu->kvm->arch.sca;
59 struct bsca_block *sca = vcpu->kvm->arch.sca;
66 read_unlock(&vcpu->kvm->arch.sca_lock);
79 read_lock(&vcpu->kvm->arch.sca_lock);
80 if (vcpu->kvm->arch.use_esca) {
81 struct esca_block *sca = vcpu->kvm->arch.sca;
94 struct bsca_block *sca = vcpu->kvm->arch.sca;
107 read_unlock(&vcpu->kvm->arch.sca_lock);
124 read_lock(&vcpu->kvm->arch.sca_lock);
125 if (vcpu->kvm->arch.use_esca) {
126 struct esca_block *sca = vcpu->kvm->arch.sca;
135 struct bsca_block *sca = vcpu->kvm->arch.sca;
144 read_unlock(&vcpu->kvm->arch.sca_lock);
150 return !(vcpu->arch.sie_block->gpsw.mask & PSW_MASK_EXT);
155 return !(vcpu->arch.sie_block->gpsw.mask & PSW_MASK_IO);
160 return !(vcpu->arch.sie_block->gpsw.mask & PSW_MASK_MCHECK);
173 !(vcpu->arch.sie_block->gcr[0] & CR0_CLOCK_COMPARATOR_SUBMASK))
184 const u64 ckc = vcpu->arch.sie_block->ckc;
186 if (vcpu->arch.sie_block->gcr[0] & CR0_CLOCK_COMPARATOR_SIGN) {
198 (vcpu->arch.sie_block->gcr[0] & CR0_CPU_TIMER_SUBMASK);
331 unsigned long pending = vcpu->kvm->arch.float_int.pending_irqs |
332 vcpu->arch.local_int.pending_irqs;
334 pending &= ~vcpu->kvm->arch.float_int.masked_irqs;
340 struct kvm_s390_gisa_interrupt *gi = &vcpu->kvm->arch.gisa_int;
365 if (!(vcpu->arch.sie_block->gcr[6] & isc_to_isc_bits(i)))
385 if (!(vcpu->arch.sie_block->gcr[0] & CR0_EXTERNAL_CALL_SUBMASK))
387 if (!(vcpu->arch.sie_block->gcr[0] & CR0_EMERGENCY_SIGNAL_SUBMASK))
389 if (!(vcpu->arch.sie_block->gcr[0] & CR0_CLOCK_COMPARATOR_SUBMASK))
391 if (!(vcpu->arch.sie_block->gcr[0] & CR0_CPU_TIMER_SUBMASK))
393 if (!(vcpu->arch.sie_block->gcr[0] & CR0_SERVICE_SIGNAL_SUBMASK)) {
401 vcpu->arch.sie_block->iictl != IICTL_CODE_NONE)
409 if (!(vcpu->arch.sie_block->gcr[14] &
410 (vcpu->kvm->arch.float_int.mchk.cr14 |
411 vcpu->arch.local_int.irq.mchk.cr14)))
426 set_bit(kvm_vcpu_get_idx(vcpu), vcpu->kvm->arch.idle_mask);
432 clear_bit(kvm_vcpu_get_idx(vcpu), vcpu->kvm->arch.idle_mask);
439 vcpu->arch.sie_block->lctl = 0x0000;
440 vcpu->arch.sie_block->ictl &= ~(ICTL_LPSW | ICTL_STCTL | ICTL_PINT);
443 vcpu->arch.sie_block->lctl |= (LCTL_CR0 | LCTL_CR9 |
445 vcpu->arch.sie_block->ictl |= (ICTL_STCTL | ICTL_PINT);
456 vcpu->arch.sie_block->lctl |= LCTL_CR6;
466 vcpu->arch.sie_block->lctl |= LCTL_CR0;
474 vcpu->arch.sie_block->ictl |= ICTL_LPSW;
476 vcpu->arch.sie_block->lctl |= LCTL_CR14;
496 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
503 vcpu->arch.sie_block->iictl = IICTL_CODE_EXT;
504 vcpu->arch.sie_block->eic = EXT_IRQ_CPU_TIMER;
510 &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
512 &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
520 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
527 vcpu->arch.sie_block->iictl = IICTL_CODE_EXT;
528 vcpu->arch.sie_block->eic = EXT_IRQ_CLK_COMP;
534 &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
536 &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
544 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
563 &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
565 &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
586 vcpu->arch.sie_block->iictl = IICTL_CODE_MCHK;
587 vcpu->arch.sie_block->mcic = mchk->mcic;
588 vcpu->arch.sie_block->faddr = mchk->failing_storage_address;
589 vcpu->arch.sie_block->edc = mchk->ext_damage_code;
597 if (MACHINE_HAS_GS && vcpu->arch.gs_enabled)
644 &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
646 &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
661 rc |= put_guest_lc(vcpu, vcpu->arch.sie_block->todpr,
665 rc |= put_guest_lc(vcpu, vcpu->arch.sie_block->ckc >> 8,
670 &vcpu->arch.sie_block->gcr, 128);
684 struct kvm_s390_float_interrupt *fi = &vcpu->kvm->arch.float_int;
685 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
735 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
743 vcpu->arch.sie_block->iictl = IICTL_CODE_RESTART;
747 &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
749 &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
757 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
777 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
793 vcpu->arch.sie_block->iictl = IICTL_CODE_EXT;
794 vcpu->arch.sie_block->eic = EXT_IRQ_EMERGENCY_SIG;
795 vcpu->arch.sie_block->extcpuaddr = cpu_addr;
803 &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
805 &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
811 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
827 vcpu->arch.sie_block->iictl = IICTL_CODE_EXT;
828 vcpu->arch.sie_block->eic = EXT_IRQ_EXTERNAL_CALL;
829 vcpu->arch.sie_block->extcpuaddr = extcall.code;
837 &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
838 rc |= read_guest_lc(vcpu, __LC_EXT_NEW_PSW, &vcpu->arch.sie_block->gpsw,
847 vcpu->arch.sie_block->iictl = IICTL_CODE_SPECIFICATION;
850 vcpu->arch.sie_block->iictl = IICTL_CODE_OPERAND;
860 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
966 rc |= put_guest_lc(vcpu, vcpu->arch.sie_block->gbea,
971 &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
973 &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
985 vcpu->arch.sie_block->iictl = IICTL_CODE_EXT;
986 vcpu->arch.sie_block->eic = EXT_IRQ_SERVICE_SIG;
987 vcpu->arch.sie_block->eiparams = parm;
994 &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
996 &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
1005 struct kvm_s390_float_interrupt *fi = &vcpu->kvm->arch.float_int;
1033 struct kvm_s390_float_interrupt *fi = &vcpu->kvm->arch.float_int;
1057 struct kvm_s390_float_interrupt *fi = &vcpu->kvm->arch.float_int;
1085 &vcpu->arch.sie_block->gpsw,
1088 &vcpu->arch.sie_block->gpsw,
1099 struct kvm_s390_float_interrupt *fi = &vcpu->kvm->arch.float_int;
1129 &vcpu->arch.sie_block->gpsw,
1132 &vcpu->arch.sie_block->gpsw,
1148 vcpu->arch.sie_block->iictl = IICTL_CODE_IO;
1149 vcpu->arch.sie_block->subchannel_id = io->subchannel_id;
1150 vcpu->arch.sie_block->subchannel_nr = io->subchannel_nr;
1151 vcpu->arch.sie_block->io_int_parm = io->io_int_parm;
1152 vcpu->arch.sie_block->io_int_word = io->io_int_word;
1161 &vcpu->arch.sie_block->gpsw,
1164 &vcpu->arch.sie_block->gpsw,
1174 struct kvm_s390_gisa_interrupt *gi = &vcpu->kvm->arch.gisa_int;
1180 fi = &vcpu->kvm->arch.float_int;
1241 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
1260 (vcpu->arch.sie_block->gcr[0] & CR0_EXTERNAL_CALL_SUBMASK))
1276 const u64 ckc = vcpu->arch.sie_block->ckc;
1280 if (vcpu->arch.sie_block->gcr[0] & CR0_CLOCK_COMPARATOR_SIGN) {
1307 struct kvm_s390_gisa_interrupt *gi = &vcpu->kvm->arch.gisa_int;
1323 vcpu->arch.sie_block->gcr[6] >> 24))
1338 hrtimer_start(&vcpu->arch.ckc_timer, sltime, HRTIMER_MODE_REL);
1346 hrtimer_cancel(&vcpu->arch.ckc_timer);
1367 vcpu = container_of(timer, struct kvm_vcpu, arch.ckc_timer);
1382 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
1395 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
1479 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
1521 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
1538 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
1564 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
1584 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
1610 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
1623 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
1643 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
1675 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
1689 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
1704 struct kvm_s390_float_interrupt *fi = &kvm->arch.float_int;
1742 struct kvm_s390_gisa_interrupt *gi = &kvm->arch.gisa_int;
1777 struct kvm_s390_gisa_interrupt *gi = &kvm->arch.gisa_int;
1815 struct kvm_s390_float_interrupt *fi = &kvm->arch.float_int;
1846 struct kvm_s390_float_interrupt *fi = &kvm->arch.float_int;
1864 struct kvm_s390_float_interrupt *fi = &kvm->arch.float_int;
1884 struct kvm_s390_float_interrupt *fi = &kvm->arch.float_int;
1898 struct kvm_s390_gisa_interrupt *gi = &kvm->arch.gisa_int;
1920 fi = &kvm->arch.float_int;
1955 sigcpu = find_first_bit(kvm->arch.idle_mask, online_vcpus);
1958 sigcpu = kvm->arch.float_int.next_rr_cpu++;
1959 kvm->arch.float_int.next_rr_cpu %= online_vcpus;
1974 kvm->arch.gisa_int.origin) ||
2117 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
2124 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
2131 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
2186 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
2225 struct kvm_s390_float_interrupt *fi = &kvm->arch.float_int;
2246 struct kvm_s390_gisa_interrupt *gi = &kvm->arch.gisa_int;
2285 fi = &kvm->arch.float_int;
2336 struct kvm_s390_float_interrupt *fi = &kvm->arch.float_int;
2454 return kvm->arch.adapters[id];
2473 if (dev->kvm->arch.adapters[adapter_info.id] != NULL)
2487 dev->kvm->arch.adapters[adapter->id] = adapter;
2509 kfree(kvm->arch.adapters[i]);
2572 struct kvm_s390_float_interrupt *fi = &kvm->arch.float_int;
2612 struct kvm_s390_float_interrupt *fi = &kvm->arch.float_int;
2653 struct kvm_s390_float_interrupt *fi = &kvm->arch.float_int;
2684 dev->kvm->arch.gmap->pfault_enabled = 1;
2687 dev->kvm->arch.gmap->pfault_enabled = 0;
2746 if (dev->kvm->arch.flic)
2748 dev->kvm->arch.flic = dev;
2754 dev->kvm->arch.flic = NULL;
2901 uaddr = gmap_translate(kvm->arch.gmap, ue->u.adapter.summary_addr);
2905 uaddr = gmap_translate(kvm->arch.gmap, ue->u.adapter.ind_addr);
2926 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
3010 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
3029 store_local_irq(&vcpu->arch.local_int, &irq, irq_type);
3065 struct kvm_s390_gisa_interrupt *gi = &kvm->arch.gisa_int;
3069 for_each_set_bit(vcpu_idx, kvm->arch.idle_mask, online_vcpus) {
3073 vcpu_isc_mask = (u8)(vcpu->arch.sie_block->gcr[6] >> 24);
3141 gi = &kvm->arch.gisa_int;
3152 struct kvm_s390_gisa_interrupt *gi = &kvm->arch.gisa_int;
3162 struct kvm_s390_gisa_interrupt *gi = &kvm->arch.gisa_int;
3166 gi->origin = &kvm->arch.sie_page2->gisa;
3179 struct kvm_s390_gisa_interrupt *gi = &kvm->arch.gisa_int;
3211 struct kvm_s390_gisa_interrupt *gi = &kvm->arch.gisa_int;
3250 struct kvm_s390_gisa_interrupt *gi = &kvm->arch.gisa_int;