vsie_page 63 arch/s390/kvm/vsie.c static void prefix_unmapped(struct vsie_page *vsie_page) vsie_page 65 arch/s390/kvm/vsie.c atomic_or(PROG_REQUEST, &vsie_page->scb_s.prog20); vsie_page 69 arch/s390/kvm/vsie.c static void prefix_unmapped_sync(struct vsie_page *vsie_page) vsie_page 71 arch/s390/kvm/vsie.c prefix_unmapped(vsie_page); vsie_page 72 arch/s390/kvm/vsie.c if (vsie_page->scb_s.prog0c & PROG_IN_SIE) vsie_page 73 arch/s390/kvm/vsie.c atomic_or(CPUSTAT_STOP_INT, &vsie_page->scb_s.cpuflags); vsie_page 74 arch/s390/kvm/vsie.c while (vsie_page->scb_s.prog0c & PROG_IN_SIE) vsie_page 79 arch/s390/kvm/vsie.c static void prefix_mapped(struct vsie_page *vsie_page) vsie_page 81 arch/s390/kvm/vsie.c atomic_andnot(PROG_REQUEST, &vsie_page->scb_s.prog20); vsie_page 85 arch/s390/kvm/vsie.c static int prefix_is_mapped(struct vsie_page *vsie_page) vsie_page 87 arch/s390/kvm/vsie.c return !(atomic_read(&vsie_page->scb_s.prog20) & PROG_REQUEST); vsie_page 91 arch/s390/kvm/vsie.c static void update_intervention_requests(struct vsie_page *vsie_page) vsie_page 96 arch/s390/kvm/vsie.c cpuflags = atomic_read(&vsie_page->scb_o->cpuflags); vsie_page 97 arch/s390/kvm/vsie.c atomic_andnot(bits, &vsie_page->scb_s.cpuflags); vsie_page 98 arch/s390/kvm/vsie.c atomic_or(cpuflags & bits, &vsie_page->scb_s.cpuflags); vsie_page 102 arch/s390/kvm/vsie.c static int prepare_cpuflags(struct kvm_vcpu *vcpu, struct vsie_page *vsie_page) vsie_page 104 arch/s390/kvm/vsie.c struct kvm_s390_sie_block *scb_s = &vsie_page->scb_s; vsie_page 105 arch/s390/kvm/vsie.c struct kvm_s390_sie_block *scb_o = vsie_page->scb_o; vsie_page 283 arch/s390/kvm/vsie.c static int shadow_crycb(struct kvm_vcpu *vcpu, struct vsie_page *vsie_page) vsie_page 285 arch/s390/kvm/vsie.c struct kvm_s390_sie_block *scb_s = &vsie_page->scb_s; vsie_page 286 arch/s390/kvm/vsie.c struct kvm_s390_sie_block *scb_o = vsie_page->scb_o; vsie_page 315 arch/s390/kvm/vsie.c ret = setup_apcb(vcpu, &vsie_page->crycb, crycb_addr, vsie_page 332 arch/s390/kvm/vsie.c vsie_page->crycb.dea_wrapping_key_mask, 56)) vsie_page 339 arch/s390/kvm/vsie.c b1 = (unsigned long *) vsie_page->crycb.dea_wrapping_key_mask; vsie_page 353 arch/s390/kvm/vsie.c scb_s->crycbd = ((__u32)(__u64) &vsie_page->crycb) | CRYCB_FORMAT2; vsie_page 358 arch/s390/kvm/vsie.c static void prepare_ibc(struct kvm_vcpu *vcpu, struct vsie_page *vsie_page) vsie_page 360 arch/s390/kvm/vsie.c struct kvm_s390_sie_block *scb_s = &vsie_page->scb_s; vsie_page 361 arch/s390/kvm/vsie.c struct kvm_s390_sie_block *scb_o = vsie_page->scb_o; vsie_page 381 arch/s390/kvm/vsie.c static void unshadow_scb(struct kvm_vcpu *vcpu, struct vsie_page *vsie_page) vsie_page 383 arch/s390/kvm/vsie.c struct kvm_s390_sie_block *scb_s = &vsie_page->scb_s; vsie_page 384 arch/s390/kvm/vsie.c struct kvm_s390_sie_block *scb_o = vsie_page->scb_o; vsie_page 437 arch/s390/kvm/vsie.c static int shadow_scb(struct kvm_vcpu *vcpu, struct vsie_page *vsie_page) vsie_page 439 arch/s390/kvm/vsie.c struct kvm_s390_sie_block *scb_o = vsie_page->scb_o; vsie_page 440 arch/s390/kvm/vsie.c struct kvm_s390_sie_block *scb_s = &vsie_page->scb_s; vsie_page 459 arch/s390/kvm/vsie.c rc = prepare_cpuflags(vcpu, vsie_page); vsie_page 495 arch/s390/kvm/vsie.c prefix_unmapped(vsie_page); vsie_page 514 arch/s390/kvm/vsie.c prefix_unmapped(vsie_page); vsie_page 552 arch/s390/kvm/vsie.c prepare_ibc(vcpu, vsie_page); vsie_page 553 arch/s390/kvm/vsie.c rc = shadow_crycb(vcpu, vsie_page); vsie_page 556 arch/s390/kvm/vsie.c unshadow_scb(vcpu, vsie_page); vsie_page 564 arch/s390/kvm/vsie.c struct vsie_page *cur; vsie_page 606 arch/s390/kvm/vsie.c static int map_prefix(struct kvm_vcpu *vcpu, struct vsie_page *vsie_page) vsie_page 608 arch/s390/kvm/vsie.c struct kvm_s390_sie_block *scb_s = &vsie_page->scb_s; vsie_page 612 arch/s390/kvm/vsie.c if (prefix_is_mapped(vsie_page)) vsie_page 616 arch/s390/kvm/vsie.c prefix_mapped(vsie_page); vsie_page 621 arch/s390/kvm/vsie.c rc = kvm_s390_shadow_fault(vcpu, vsie_page->gmap, prefix); vsie_page 623 arch/s390/kvm/vsie.c rc = kvm_s390_shadow_fault(vcpu, vsie_page->gmap, vsie_page 630 arch/s390/kvm/vsie.c prefix_unmapped(vsie_page); vsie_page 663 arch/s390/kvm/vsie.c static void unpin_blocks(struct kvm_vcpu *vcpu, struct vsie_page *vsie_page) vsie_page 665 arch/s390/kvm/vsie.c struct kvm_s390_sie_block *scb_s = &vsie_page->scb_s; vsie_page 670 arch/s390/kvm/vsie.c unpin_guest_page(vcpu->kvm, vsie_page->sca_gpa, hpa); vsie_page 671 arch/s390/kvm/vsie.c vsie_page->sca_gpa = 0; vsie_page 678 arch/s390/kvm/vsie.c unpin_guest_page(vcpu->kvm, vsie_page->itdba_gpa, hpa); vsie_page 679 arch/s390/kvm/vsie.c vsie_page->itdba_gpa = 0; vsie_page 685 arch/s390/kvm/vsie.c unpin_guest_page(vcpu->kvm, vsie_page->gvrd_gpa, hpa); vsie_page 686 arch/s390/kvm/vsie.c vsie_page->gvrd_gpa = 0; vsie_page 692 arch/s390/kvm/vsie.c unpin_guest_page(vcpu->kvm, vsie_page->riccbd_gpa, hpa); vsie_page 693 arch/s390/kvm/vsie.c vsie_page->riccbd_gpa = 0; vsie_page 699 arch/s390/kvm/vsie.c unpin_guest_page(vcpu->kvm, vsie_page->sdnx_gpa, hpa); vsie_page 700 arch/s390/kvm/vsie.c vsie_page->sdnx_gpa = 0; vsie_page 719 arch/s390/kvm/vsie.c static int pin_blocks(struct kvm_vcpu *vcpu, struct vsie_page *vsie_page) vsie_page 721 arch/s390/kvm/vsie.c struct kvm_s390_sie_block *scb_o = vsie_page->scb_o; vsie_page 722 arch/s390/kvm/vsie.c struct kvm_s390_sie_block *scb_s = &vsie_page->scb_s; vsie_page 745 arch/s390/kvm/vsie.c vsie_page->sca_gpa = gpa; vsie_page 762 arch/s390/kvm/vsie.c vsie_page->itdba_gpa = gpa; vsie_page 781 arch/s390/kvm/vsie.c vsie_page->gvrd_gpa = gpa; vsie_page 798 arch/s390/kvm/vsie.c vsie_page->riccbd_gpa = gpa; vsie_page 827 arch/s390/kvm/vsie.c vsie_page->sdnx_gpa = gpa; vsie_page 832 arch/s390/kvm/vsie.c unpin_blocks(vcpu, vsie_page); vsie_page 837 arch/s390/kvm/vsie.c static void unpin_scb(struct kvm_vcpu *vcpu, struct vsie_page *vsie_page, vsie_page 840 arch/s390/kvm/vsie.c hpa_t hpa = (hpa_t) vsie_page->scb_o; vsie_page 844 arch/s390/kvm/vsie.c vsie_page->scb_o = NULL; vsie_page 853 arch/s390/kvm/vsie.c static int pin_scb(struct kvm_vcpu *vcpu, struct vsie_page *vsie_page, vsie_page 865 arch/s390/kvm/vsie.c vsie_page->scb_o = (struct kvm_s390_sie_block *) hpa; vsie_page 905 arch/s390/kvm/vsie.c static int handle_fault(struct kvm_vcpu *vcpu, struct vsie_page *vsie_page) vsie_page 914 arch/s390/kvm/vsie.c rc = kvm_s390_shadow_fault(vcpu, vsie_page->gmap, vsie_page 921 arch/s390/kvm/vsie.c vsie_page->fault_addr = current->thread.gmap_addr; vsie_page 933 arch/s390/kvm/vsie.c struct vsie_page *vsie_page) vsie_page 935 arch/s390/kvm/vsie.c if (vsie_page->fault_addr) vsie_page 936 arch/s390/kvm/vsie.c kvm_s390_shadow_fault(vcpu, vsie_page->gmap, vsie_page 937 arch/s390/kvm/vsie.c vsie_page->fault_addr); vsie_page 938 arch/s390/kvm/vsie.c vsie_page->fault_addr = 0; vsie_page 941 arch/s390/kvm/vsie.c static inline void clear_vsie_icpt(struct vsie_page *vsie_page) vsie_page 943 arch/s390/kvm/vsie.c vsie_page->scb_s.icptcode = 0; vsie_page 947 arch/s390/kvm/vsie.c static void retry_vsie_icpt(struct vsie_page *vsie_page) vsie_page 949 arch/s390/kvm/vsie.c struct kvm_s390_sie_block *scb_s = &vsie_page->scb_s; vsie_page 959 arch/s390/kvm/vsie.c clear_vsie_icpt(vsie_page); vsie_page 969 arch/s390/kvm/vsie.c static int handle_stfle(struct kvm_vcpu *vcpu, struct vsie_page *vsie_page) vsie_page 971 arch/s390/kvm/vsie.c struct kvm_s390_sie_block *scb_s = &vsie_page->scb_s; vsie_page 972 arch/s390/kvm/vsie.c __u32 fac = READ_ONCE(vsie_page->scb_o->fac) & 0x7ffffff8U; vsie_page 975 arch/s390/kvm/vsie.c retry_vsie_icpt(vsie_page); vsie_page 976 arch/s390/kvm/vsie.c if (read_guest_real(vcpu, fac, &vsie_page->fac, vsie_page 977 arch/s390/kvm/vsie.c sizeof(vsie_page->fac))) vsie_page 979 arch/s390/kvm/vsie.c scb_s->fac = (__u32)(__u64) &vsie_page->fac; vsie_page 992 arch/s390/kvm/vsie.c static int do_vsie_run(struct kvm_vcpu *vcpu, struct vsie_page *vsie_page) vsie_page 996 arch/s390/kvm/vsie.c struct kvm_s390_sie_block *scb_s = &vsie_page->scb_s; vsie_page 997 arch/s390/kvm/vsie.c struct kvm_s390_sie_block *scb_o = vsie_page->scb_o; vsie_page 1001 arch/s390/kvm/vsie.c handle_last_fault(vcpu, vsie_page); vsie_page 1052 arch/s390/kvm/vsie.c kvm_s390_reinject_machine_check(vcpu, &vsie_page->mcck_info); vsie_page 1059 arch/s390/kvm/vsie.c return handle_fault(vcpu, vsie_page); vsie_page 1064 arch/s390/kvm/vsie.c rc = handle_stfle(vcpu, vsie_page); vsie_page 1069 arch/s390/kvm/vsie.c clear_vsie_icpt(vsie_page); vsie_page 1079 arch/s390/kvm/vsie.c static void release_gmap_shadow(struct vsie_page *vsie_page) vsie_page 1081 arch/s390/kvm/vsie.c if (vsie_page->gmap) vsie_page 1082 arch/s390/kvm/vsie.c gmap_put(vsie_page->gmap); vsie_page 1083 arch/s390/kvm/vsie.c WRITE_ONCE(vsie_page->gmap, NULL); vsie_page 1084 arch/s390/kvm/vsie.c prefix_unmapped(vsie_page); vsie_page 1088 arch/s390/kvm/vsie.c struct vsie_page *vsie_page) vsie_page 1105 arch/s390/kvm/vsie.c if (vsie_page->gmap && gmap_shadow_valid(vsie_page->gmap, asce, edat)) vsie_page 1109 arch/s390/kvm/vsie.c release_gmap_shadow(vsie_page); vsie_page 1114 arch/s390/kvm/vsie.c WRITE_ONCE(vsie_page->gmap, gmap); vsie_page 1122 arch/s390/kvm/vsie.c struct vsie_page *vsie_page) vsie_page 1124 arch/s390/kvm/vsie.c struct kvm_s390_sie_block *scb_s = &vsie_page->scb_s; vsie_page 1126 arch/s390/kvm/vsie.c WRITE_ONCE(vcpu->arch.vsie_block, &vsie_page->scb_s); vsie_page 1165 arch/s390/kvm/vsie.c static int vsie_run(struct kvm_vcpu *vcpu, struct vsie_page *vsie_page) vsie_page 1167 arch/s390/kvm/vsie.c struct kvm_s390_sie_block *scb_s = &vsie_page->scb_s; vsie_page 1171 arch/s390/kvm/vsie.c rc = acquire_gmap_shadow(vcpu, vsie_page); vsie_page 1173 arch/s390/kvm/vsie.c rc = map_prefix(vcpu, vsie_page); vsie_page 1175 arch/s390/kvm/vsie.c gmap_enable(vsie_page->gmap); vsie_page 1176 arch/s390/kvm/vsie.c update_intervention_requests(vsie_page); vsie_page 1177 arch/s390/kvm/vsie.c rc = do_vsie_run(vcpu, vsie_page); vsie_page 1217 arch/s390/kvm/vsie.c static struct vsie_page *get_vsie_page(struct kvm *kvm, unsigned long addr) vsie_page 1219 arch/s390/kvm/vsie.c struct vsie_page *vsie_page; vsie_page 1269 arch/s390/kvm/vsie.c vsie_page = page_to_virt(page); vsie_page 1270 arch/s390/kvm/vsie.c memset(&vsie_page->scb_s, 0, sizeof(struct kvm_s390_sie_block)); vsie_page 1271 arch/s390/kvm/vsie.c release_gmap_shadow(vsie_page); vsie_page 1272 arch/s390/kvm/vsie.c vsie_page->fault_addr = 0; vsie_page 1273 arch/s390/kvm/vsie.c vsie_page->scb_s.ihcpu = 0xffffU; vsie_page 1274 arch/s390/kvm/vsie.c return vsie_page; vsie_page 1278 arch/s390/kvm/vsie.c static void put_vsie_page(struct kvm *kvm, struct vsie_page *vsie_page) vsie_page 1280 arch/s390/kvm/vsie.c struct page *page = pfn_to_page(__pa(vsie_page) >> PAGE_SHIFT); vsie_page 1287 arch/s390/kvm/vsie.c struct vsie_page *vsie_page; vsie_page 1297 arch/s390/kvm/vsie.c BUILD_BUG_ON(sizeof(struct vsie_page) != PAGE_SIZE); vsie_page 1308 arch/s390/kvm/vsie.c vsie_page = get_vsie_page(vcpu->kvm, scb_addr); vsie_page 1309 arch/s390/kvm/vsie.c if (IS_ERR(vsie_page)) vsie_page 1310 arch/s390/kvm/vsie.c return PTR_ERR(vsie_page); vsie_page 1311 arch/s390/kvm/vsie.c else if (!vsie_page) vsie_page 1315 arch/s390/kvm/vsie.c rc = pin_scb(vcpu, vsie_page, scb_addr); vsie_page 1318 arch/s390/kvm/vsie.c rc = shadow_scb(vcpu, vsie_page); vsie_page 1321 arch/s390/kvm/vsie.c rc = pin_blocks(vcpu, vsie_page); vsie_page 1324 arch/s390/kvm/vsie.c register_shadow_scb(vcpu, vsie_page); vsie_page 1325 arch/s390/kvm/vsie.c rc = vsie_run(vcpu, vsie_page); vsie_page 1327 arch/s390/kvm/vsie.c unpin_blocks(vcpu, vsie_page); vsie_page 1329 arch/s390/kvm/vsie.c unshadow_scb(vcpu, vsie_page); vsie_page 1331 arch/s390/kvm/vsie.c unpin_scb(vcpu, vsie_page, scb_addr); vsie_page 1333 arch/s390/kvm/vsie.c put_vsie_page(vcpu->kvm, vsie_page); vsie_page 1348 arch/s390/kvm/vsie.c struct vsie_page *vsie_page; vsie_page 1356 arch/s390/kvm/vsie.c vsie_page = page_to_virt(page); vsie_page 1357 arch/s390/kvm/vsie.c release_gmap_shadow(vsie_page);