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;