scb_s              25 arch/s390/kvm/vsie.c 	struct kvm_s390_sie_block scb_s;	/* 0x0000 */
scb_s              65 arch/s390/kvm/vsie.c 	atomic_or(PROG_REQUEST, &vsie_page->scb_s.prog20);
scb_s              72 arch/s390/kvm/vsie.c 	if (vsie_page->scb_s.prog0c & PROG_IN_SIE)
scb_s              73 arch/s390/kvm/vsie.c 		atomic_or(CPUSTAT_STOP_INT, &vsie_page->scb_s.cpuflags);
scb_s              74 arch/s390/kvm/vsie.c 	while (vsie_page->scb_s.prog0c & PROG_IN_SIE)
scb_s              81 arch/s390/kvm/vsie.c 	atomic_andnot(PROG_REQUEST, &vsie_page->scb_s.prog20);
scb_s              87 arch/s390/kvm/vsie.c 	return !(atomic_read(&vsie_page->scb_s.prog20) & PROG_REQUEST);
scb_s              97 arch/s390/kvm/vsie.c 	atomic_andnot(bits, &vsie_page->scb_s.cpuflags);
scb_s              98 arch/s390/kvm/vsie.c 	atomic_or(cpuflags & bits, &vsie_page->scb_s.cpuflags);
scb_s             104 arch/s390/kvm/vsie.c 	struct kvm_s390_sie_block *scb_s = &vsie_page->scb_s;
scb_s             110 arch/s390/kvm/vsie.c 		return set_validity_icpt(scb_s, 0x0001U);
scb_s             113 arch/s390/kvm/vsie.c 		return set_validity_icpt(scb_s, 0x0001U);
scb_s             115 arch/s390/kvm/vsie.c 		return set_validity_icpt(scb_s, 0x0007U);
scb_s             123 arch/s390/kvm/vsie.c 			return set_validity_icpt(scb_s, 0x0001U);
scb_s             135 arch/s390/kvm/vsie.c 	atomic_set(&scb_s->cpuflags, newflags);
scb_s             285 arch/s390/kvm/vsie.c 	struct kvm_s390_sie_block *scb_s = &vsie_page->scb_s;
scb_s             299 arch/s390/kvm/vsie.c 	scb_s->crycbd = 0;
scb_s             307 arch/s390/kvm/vsie.c 		return set_validity_icpt(scb_s, 0x0039U);
scb_s             312 arch/s390/kvm/vsie.c 			return set_validity_icpt(scb_s, 0x003CU);
scb_s             320 arch/s390/kvm/vsie.c 		scb_s->eca |= scb_o->eca & ECA_APIE;
scb_s             333 arch/s390/kvm/vsie.c 		return set_validity_icpt(scb_s, 0x0035U);
scb_s             335 arch/s390/kvm/vsie.c 	scb_s->ecb3 |= ecb3_flags;
scb_s             336 arch/s390/kvm/vsie.c 	scb_s->ecd |= ecd_flags;
scb_s             347 arch/s390/kvm/vsie.c 		return set_validity_icpt(scb_s, 0x0022U);
scb_s             349 arch/s390/kvm/vsie.c 		return set_validity_icpt(scb_s, 0x0035U);
scb_s             351 arch/s390/kvm/vsie.c 		return set_validity_icpt(scb_s, 0x003CU);
scb_s             353 arch/s390/kvm/vsie.c 	scb_s->crycbd = ((__u32)(__u64) &vsie_page->crycb) | CRYCB_FORMAT2;
scb_s             360 arch/s390/kvm/vsie.c 	struct kvm_s390_sie_block *scb_s = &vsie_page->scb_s;
scb_s             367 arch/s390/kvm/vsie.c 	scb_s->ibc = 0;
scb_s             370 arch/s390/kvm/vsie.c 		scb_s->ibc = new_ibc;
scb_s             372 arch/s390/kvm/vsie.c 		if (scb_s->ibc < min_ibc)
scb_s             373 arch/s390/kvm/vsie.c 			scb_s->ibc = min_ibc;
scb_s             375 arch/s390/kvm/vsie.c 		if (scb_s->ibc > vcpu->kvm->arch.model.ibc)
scb_s             376 arch/s390/kvm/vsie.c 			scb_s->ibc = vcpu->kvm->arch.model.ibc;
scb_s             383 arch/s390/kvm/vsie.c 	struct kvm_s390_sie_block *scb_s = &vsie_page->scb_s;
scb_s             387 arch/s390/kvm/vsie.c 	scb_o->icptcode = scb_s->icptcode;
scb_s             388 arch/s390/kvm/vsie.c 	scb_o->icptstatus = scb_s->icptstatus;
scb_s             389 arch/s390/kvm/vsie.c 	scb_o->ipa = scb_s->ipa;
scb_s             390 arch/s390/kvm/vsie.c 	scb_o->ipb = scb_s->ipb;
scb_s             391 arch/s390/kvm/vsie.c 	scb_o->gbea = scb_s->gbea;
scb_s             394 arch/s390/kvm/vsie.c 	scb_o->cputm = scb_s->cputm;
scb_s             395 arch/s390/kvm/vsie.c 	scb_o->ckc = scb_s->ckc;
scb_s             396 arch/s390/kvm/vsie.c 	scb_o->todpr = scb_s->todpr;
scb_s             399 arch/s390/kvm/vsie.c 	scb_o->gpsw = scb_s->gpsw;
scb_s             400 arch/s390/kvm/vsie.c 	scb_o->gg14 = scb_s->gg14;
scb_s             401 arch/s390/kvm/vsie.c 	scb_o->gg15 = scb_s->gg15;
scb_s             402 arch/s390/kvm/vsie.c 	memcpy(scb_o->gcr, scb_s->gcr, 128);
scb_s             403 arch/s390/kvm/vsie.c 	scb_o->pp = scb_s->pp;
scb_s             408 arch/s390/kvm/vsie.c 		scb_o->fpf |= scb_s->fpf & FPF_BPBC;
scb_s             412 arch/s390/kvm/vsie.c 	switch (scb_s->icptcode) {
scb_s             417 arch/s390/kvm/vsie.c 		       (void *)((u64)scb_s + 0xc0), 0xf0 - 0xc0);
scb_s             422 arch/s390/kvm/vsie.c 		       (void *)((u64)scb_s + 0xc0), 0xd0 - 0xc0);
scb_s             426 arch/s390/kvm/vsie.c 	if (scb_s->ihcpu != 0xffffU)
scb_s             427 arch/s390/kvm/vsie.c 		scb_o->ihcpu = scb_s->ihcpu;
scb_s             440 arch/s390/kvm/vsie.c 	struct kvm_s390_sie_block *scb_s = &vsie_page->scb_s;
scb_s             445 arch/s390/kvm/vsie.c 	bool had_tx = scb_s->ecb & ECB_TE;
scb_s             450 arch/s390/kvm/vsie.c 	scb_s->icptcode = 0;
scb_s             451 arch/s390/kvm/vsie.c 	scb_s->eca = 0;
scb_s             452 arch/s390/kvm/vsie.c 	scb_s->ecb = 0;
scb_s             453 arch/s390/kvm/vsie.c 	scb_s->ecb2 = 0;
scb_s             454 arch/s390/kvm/vsie.c 	scb_s->ecb3 = 0;
scb_s             455 arch/s390/kvm/vsie.c 	scb_s->ecd = 0;
scb_s             456 arch/s390/kvm/vsie.c 	scb_s->fac = 0;
scb_s             457 arch/s390/kvm/vsie.c 	scb_s->fpf = 0;
scb_s             464 arch/s390/kvm/vsie.c 	scb_s->cputm = scb_o->cputm;
scb_s             465 arch/s390/kvm/vsie.c 	scb_s->ckc = scb_o->ckc;
scb_s             466 arch/s390/kvm/vsie.c 	scb_s->todpr = scb_o->todpr;
scb_s             467 arch/s390/kvm/vsie.c 	scb_s->epoch = scb_o->epoch;
scb_s             470 arch/s390/kvm/vsie.c 	scb_s->gpsw = scb_o->gpsw;
scb_s             471 arch/s390/kvm/vsie.c 	scb_s->gg14 = scb_o->gg14;
scb_s             472 arch/s390/kvm/vsie.c 	scb_s->gg15 = scb_o->gg15;
scb_s             473 arch/s390/kvm/vsie.c 	memcpy(scb_s->gcr, scb_o->gcr, 128);
scb_s             474 arch/s390/kvm/vsie.c 	scb_s->pp = scb_o->pp;
scb_s             477 arch/s390/kvm/vsie.c 	scb_s->gbea = scb_o->gbea;
scb_s             478 arch/s390/kvm/vsie.c 	scb_s->lctl = scb_o->lctl;
scb_s             479 arch/s390/kvm/vsie.c 	scb_s->svcc = scb_o->svcc;
scb_s             480 arch/s390/kvm/vsie.c 	scb_s->ictl = scb_o->ictl;
scb_s             486 arch/s390/kvm/vsie.c 	if (!(atomic_read(&scb_s->cpuflags) & CPUSTAT_KSS))
scb_s             487 arch/s390/kvm/vsie.c 		scb_s->ictl |= ICTL_ISKE | ICTL_SSKE | ICTL_RRBE;
scb_s             489 arch/s390/kvm/vsie.c 	scb_s->icpua = scb_o->icpua;
scb_s             491 arch/s390/kvm/vsie.c 	if (!(atomic_read(&scb_s->cpuflags) & CPUSTAT_SM))
scb_s             494 arch/s390/kvm/vsie.c 	if (scb_s->mso != new_mso || scb_s->prefix != new_prefix)
scb_s             497 arch/s390/kvm/vsie.c 	scb_s->msl = scb_o->msl & 0xfffffffffff00000UL;
scb_s             498 arch/s390/kvm/vsie.c 	scb_s->mso = new_mso;
scb_s             499 arch/s390/kvm/vsie.c 	scb_s->prefix = new_prefix;
scb_s             502 arch/s390/kvm/vsie.c 	if (scb_s->ihcpu != 0xffffU)
scb_s             503 arch/s390/kvm/vsie.c 		scb_s->ihcpu = scb_o->ihcpu;
scb_s             506 arch/s390/kvm/vsie.c 	scb_s->eca |= scb_o->eca & (ECA_MVPGI | ECA_PROTEXCI);
scb_s             509 arch/s390/kvm/vsie.c 		scb_s->ecb |= scb_o->ecb & ECB_HOSTPROTINT;
scb_s             515 arch/s390/kvm/vsie.c 		scb_s->ecb |= ECB_TE;
scb_s             519 arch/s390/kvm/vsie.c 		scb_s->fpf |= scb_o->fpf & FPF_BPBC;
scb_s             522 arch/s390/kvm/vsie.c 		scb_s->eca |= scb_o->eca & ECA_VX;
scb_s             523 arch/s390/kvm/vsie.c 		scb_s->ecd |= scb_o->ecd & ECD_HOSTREGMGMT;
scb_s             527 arch/s390/kvm/vsie.c 		scb_s->ecb3 |= scb_o->ecb3 & ECB3_RI;
scb_s             530 arch/s390/kvm/vsie.c 		scb_s->ecb2 |= scb_o->ecb2 & ECB2_IEP;
scb_s             533 arch/s390/kvm/vsie.c 		scb_s->ecb |= scb_o->ecb & ECB_GS;
scb_s             534 arch/s390/kvm/vsie.c 		scb_s->ecd |= scb_o->ecd & ECD_HOSTREGMGMT;
scb_s             537 arch/s390/kvm/vsie.c 		scb_s->eca |= scb_o->eca & ECA_SII;
scb_s             539 arch/s390/kvm/vsie.c 		scb_s->eca |= scb_o->eca & ECA_IB;
scb_s             541 arch/s390/kvm/vsie.c 		scb_s->eca |= scb_o->eca & ECA_CEI;
scb_s             544 arch/s390/kvm/vsie.c 		scb_s->ecd |= scb_o->ecd & ECD_MEF;
scb_s             548 arch/s390/kvm/vsie.c 		scb_s->ecd |= scb_o->ecd & ECD_ETOKENF;
scb_s             550 arch/s390/kvm/vsie.c 	scb_s->hpid = HPID_VSIE;
scb_s             586 arch/s390/kvm/vsie.c 		prefix = cur->scb_s.prefix << GUEST_PREFIX_SHIFT;
scb_s             588 arch/s390/kvm/vsie.c 		prefix += cur->scb_s.mso;
scb_s             608 arch/s390/kvm/vsie.c 	struct kvm_s390_sie_block *scb_s = &vsie_page->scb_s;
scb_s             609 arch/s390/kvm/vsie.c 	u64 prefix = scb_s->prefix << GUEST_PREFIX_SHIFT;
scb_s             619 arch/s390/kvm/vsie.c 	prefix += scb_s->mso;
scb_s             622 arch/s390/kvm/vsie.c 	if (!rc && (scb_s->ecb & ECB_TE))
scb_s             632 arch/s390/kvm/vsie.c 		rc = set_validity_icpt(scb_s, 0x0037U);
scb_s             665 arch/s390/kvm/vsie.c 	struct kvm_s390_sie_block *scb_s = &vsie_page->scb_s;
scb_s             668 arch/s390/kvm/vsie.c 	hpa = (u64) scb_s->scaoh << 32 | scb_s->scaol;
scb_s             672 arch/s390/kvm/vsie.c 		scb_s->scaol = 0;
scb_s             673 arch/s390/kvm/vsie.c 		scb_s->scaoh = 0;
scb_s             676 arch/s390/kvm/vsie.c 	hpa = scb_s->itdba;
scb_s             680 arch/s390/kvm/vsie.c 		scb_s->itdba = 0;
scb_s             683 arch/s390/kvm/vsie.c 	hpa = scb_s->gvrd;
scb_s             687 arch/s390/kvm/vsie.c 		scb_s->gvrd = 0;
scb_s             690 arch/s390/kvm/vsie.c 	hpa = scb_s->riccbd;
scb_s             694 arch/s390/kvm/vsie.c 		scb_s->riccbd = 0;
scb_s             697 arch/s390/kvm/vsie.c 	hpa = scb_s->sdnxo;
scb_s             701 arch/s390/kvm/vsie.c 		scb_s->sdnxo = 0;
scb_s             722 arch/s390/kvm/vsie.c 	struct kvm_s390_sie_block *scb_s = &vsie_page->scb_s;
scb_s             732 arch/s390/kvm/vsie.c 			rc = set_validity_icpt(scb_s, 0x0038U);
scb_s             734 arch/s390/kvm/vsie.c 			rc = set_validity_icpt(scb_s, 0x0011U);
scb_s             737 arch/s390/kvm/vsie.c 			rc = set_validity_icpt(scb_s, 0x003bU);
scb_s             741 arch/s390/kvm/vsie.c 				rc = set_validity_icpt(scb_s, 0x0034U);
scb_s             746 arch/s390/kvm/vsie.c 		scb_s->scaoh = (u32)((u64)hpa >> 32);
scb_s             747 arch/s390/kvm/vsie.c 		scb_s->scaol = (u32)(u64)hpa;
scb_s             751 arch/s390/kvm/vsie.c 	if (gpa && (scb_s->ecb & ECB_TE)) {
scb_s             753 arch/s390/kvm/vsie.c 			rc = set_validity_icpt(scb_s, 0x0080U);
scb_s             759 arch/s390/kvm/vsie.c 			rc = set_validity_icpt(scb_s, 0x0080U);
scb_s             763 arch/s390/kvm/vsie.c 		scb_s->itdba = hpa;
scb_s             767 arch/s390/kvm/vsie.c 	if (gpa && (scb_s->eca & ECA_VX) && !(scb_s->ecd & ECD_HOSTREGMGMT)) {
scb_s             769 arch/s390/kvm/vsie.c 			rc = set_validity_icpt(scb_s, 0x1310U);
scb_s             778 arch/s390/kvm/vsie.c 			rc = set_validity_icpt(scb_s, 0x1310U);
scb_s             782 arch/s390/kvm/vsie.c 		scb_s->gvrd = hpa;
scb_s             786 arch/s390/kvm/vsie.c 	if (gpa && (scb_s->ecb3 & ECB3_RI)) {
scb_s             788 arch/s390/kvm/vsie.c 			rc = set_validity_icpt(scb_s, 0x0043U);
scb_s             794 arch/s390/kvm/vsie.c 			rc = set_validity_icpt(scb_s, 0x0043U);
scb_s             799 arch/s390/kvm/vsie.c 		scb_s->riccbd = hpa;
scb_s             801 arch/s390/kvm/vsie.c 	if (((scb_s->ecb & ECB_GS) && !(scb_s->ecd & ECD_HOSTREGMGMT)) ||
scb_s             802 arch/s390/kvm/vsie.c 	    (scb_s->ecd & ECD_ETOKENF)) {
scb_s             808 arch/s390/kvm/vsie.c 			rc = set_validity_icpt(scb_s, 0x10b0U);
scb_s             812 arch/s390/kvm/vsie.c 			rc = set_validity_icpt(scb_s, 0x10b1U);
scb_s             816 arch/s390/kvm/vsie.c 			rc = set_validity_icpt(scb_s, 0x10b2U);
scb_s             824 arch/s390/kvm/vsie.c 			rc = set_validity_icpt(scb_s, 0x10b0U);
scb_s             828 arch/s390/kvm/vsie.c 		scb_s->sdnxo = hpa | sdnxc;
scb_s             943 arch/s390/kvm/vsie.c 	vsie_page->scb_s.icptcode = 0;
scb_s             949 arch/s390/kvm/vsie.c 	struct kvm_s390_sie_block *scb_s = &vsie_page->scb_s;
scb_s             950 arch/s390/kvm/vsie.c 	int ilen = insn_length(scb_s->ipa >> 8);
scb_s             953 arch/s390/kvm/vsie.c 	if (scb_s->icptstatus & 1) {
scb_s             954 arch/s390/kvm/vsie.c 		ilen = (scb_s->icptstatus >> 4) & 0x6;
scb_s             958 arch/s390/kvm/vsie.c 	scb_s->gpsw.addr = __rewind_psw(scb_s->gpsw, ilen);
scb_s             971 arch/s390/kvm/vsie.c 	struct kvm_s390_sie_block *scb_s = &vsie_page->scb_s;
scb_s             978 arch/s390/kvm/vsie.c 			return set_validity_icpt(scb_s, 0x1090U);
scb_s             979 arch/s390/kvm/vsie.c 		scb_s->fac = (__u32)(__u64) &vsie_page->fac;
scb_s             996 arch/s390/kvm/vsie.c 	struct kvm_s390_sie_block *scb_s = &vsie_page->scb_s;
scb_s            1036 arch/s390/kvm/vsie.c 		rc = sie64a(scb_s, vcpu->run->s.regs.gprs);
scb_s            1061 arch/s390/kvm/vsie.c 	switch (scb_s->icptcode) {
scb_s            1063 arch/s390/kvm/vsie.c 		if (scb_s->ipa == 0xb2b0)
scb_s            1072 arch/s390/kvm/vsie.c 		if ((scb_s->ipa & 0xf000) != 0xf000)
scb_s            1073 arch/s390/kvm/vsie.c 			scb_s->ipa += 0x1000;
scb_s            1124 arch/s390/kvm/vsie.c 	struct kvm_s390_sie_block *scb_s = &vsie_page->scb_s;
scb_s            1126 arch/s390/kvm/vsie.c 	WRITE_ONCE(vcpu->arch.vsie_block, &vsie_page->scb_s);
scb_s            1137 arch/s390/kvm/vsie.c 	scb_s->epoch += vcpu->kvm->arch.epoch;
scb_s            1139 arch/s390/kvm/vsie.c 	if (scb_s->ecd & ECD_MEF) {
scb_s            1140 arch/s390/kvm/vsie.c 		scb_s->epdx += vcpu->kvm->arch.epdx;
scb_s            1141 arch/s390/kvm/vsie.c 		if (scb_s->epoch < vcpu->kvm->arch.epoch)
scb_s            1142 arch/s390/kvm/vsie.c 			scb_s->epdx += 1;
scb_s            1167 arch/s390/kvm/vsie.c 	struct kvm_s390_sie_block *scb_s = &vsie_page->scb_s;
scb_s            1180 arch/s390/kvm/vsie.c 		atomic_andnot(PROG_BLOCK_SIE, &scb_s->prog20);
scb_s            1184 arch/s390/kvm/vsie.c 		if (rc || scb_s->icptcode || signal_pending(current) ||
scb_s            1201 arch/s390/kvm/vsie.c 		scb_s->icptcode = ICPT_PROGI;
scb_s            1202 arch/s390/kvm/vsie.c 		scb_s->iprcc = PGM_ADDRESSING;
scb_s            1203 arch/s390/kvm/vsie.c 		scb_s->pgmilc = 4;
scb_s            1204 arch/s390/kvm/vsie.c 		scb_s->gpsw.addr = __rewind_psw(scb_s->gpsw, 4);
scb_s            1270 arch/s390/kvm/vsie.c 	memset(&vsie_page->scb_s, 0, sizeof(struct kvm_s390_sie_block));
scb_s            1273 arch/s390/kvm/vsie.c 	vsie_page->scb_s.ihcpu = 0xffffU;