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);