Lines Matching refs:arch
216 struct gmap *gmap = kvm->arch.gmap; in kvm_s390_sync_dirty_log()
278 kvm->arch.use_irqchip = 1; in kvm_vm_ioctl_enable_cap()
282 kvm->arch.user_sigp = 1; in kvm_vm_ioctl_enable_cap()
290 set_kvm_facility(kvm->arch.model.fac->mask, 129); in kvm_vm_ioctl_enable_cap()
291 set_kvm_facility(kvm->arch.model.fac->list, 129); in kvm_vm_ioctl_enable_cap()
298 kvm->arch.user_stsi = 1; in kvm_vm_ioctl_enable_cap()
315 if (put_user(kvm->arch.gmap->asce_end, (u64 __user *)attr->addr)) in kvm_s390_get_mem_control()
334 kvm->arch.use_cmma = 1; in kvm_s390_set_mem_control()
342 s390_reset_cmma(kvm->arch.gmap->mm); in kvm_s390_set_mem_control()
356 if (new_limit > kvm->arch.gmap->asce_end) in kvm_s390_set_mem_control()
368 gmap_free(kvm->arch.gmap); in kvm_s390_set_mem_control()
370 kvm->arch.gmap = new; in kvm_s390_set_mem_control()
398 kvm->arch.crypto.crycb->aes_wrapping_key_mask, in kvm_s390_vm_set_crypto()
399 sizeof(kvm->arch.crypto.crycb->aes_wrapping_key_mask)); in kvm_s390_vm_set_crypto()
400 kvm->arch.crypto.aes_kw = 1; in kvm_s390_vm_set_crypto()
404 kvm->arch.crypto.crycb->dea_wrapping_key_mask, in kvm_s390_vm_set_crypto()
405 sizeof(kvm->arch.crypto.crycb->dea_wrapping_key_mask)); in kvm_s390_vm_set_crypto()
406 kvm->arch.crypto.dea_kw = 1; in kvm_s390_vm_set_crypto()
409 kvm->arch.crypto.aes_kw = 0; in kvm_s390_vm_set_crypto()
410 memset(kvm->arch.crypto.crycb->aes_wrapping_key_mask, 0, in kvm_s390_vm_set_crypto()
411 sizeof(kvm->arch.crypto.crycb->aes_wrapping_key_mask)); in kvm_s390_vm_set_crypto()
414 kvm->arch.crypto.dea_kw = 0; in kvm_s390_vm_set_crypto()
415 memset(kvm->arch.crypto.crycb->dea_wrapping_key_mask, 0, in kvm_s390_vm_set_crypto()
416 sizeof(kvm->arch.crypto.crycb->dea_wrapping_key_mask)); in kvm_s390_vm_set_crypto()
460 kvm->arch.epoch = gtod - host_tod; in kvm_s390_set_tod_low()
462 cur_vcpu->arch.sie_block->epoch = kvm->arch.epoch; in kvm_s390_set_tod_low()
510 gtod = host_tod + kvm->arch.epoch; in kvm_s390_get_tod_low()
555 memcpy(&kvm->arch.model.cpu_id, &proc->cpuid, in kvm_s390_set_processor()
557 kvm->arch.model.ibc = proc->ibc; in kvm_s390_set_processor()
558 memcpy(kvm->arch.model.fac->list, proc->fac_list, in kvm_s390_set_processor()
590 memcpy(&proc->cpuid, &kvm->arch.model.cpu_id, sizeof(struct cpuid)); in kvm_s390_get_processor()
591 proc->ibc = kvm->arch.model.ibc; in kvm_s390_get_processor()
592 memcpy(&proc->fac_list, kvm->arch.model.fac->list, S390_ARCH_FAC_LIST_SIZE_BYTE); in kvm_s390_get_processor()
612 memcpy(&mach->fac_mask, kvm->arch.model.fac->mask, in kvm_s390_get_machine()
877 if (kvm->arch.use_irqchip) { in kvm_arch_vm_ioctl()
974 kvm->arch.crypto.crycbd = (__u32)(unsigned long) kvm->arch.crypto.crycb; in kvm_s390_set_crycb_format()
977 kvm->arch.crypto.crycbd |= CRYCB_FORMAT2; in kvm_s390_set_crycb_format()
979 kvm->arch.crypto.crycbd |= CRYCB_FORMAT1; in kvm_s390_set_crycb_format()
993 kvm->arch.crypto.crycb = kzalloc(sizeof(*kvm->arch.crypto.crycb), in kvm_s390_crypto_init()
995 if (!kvm->arch.crypto.crycb) in kvm_s390_crypto_init()
1001 kvm->arch.crypto.aes_kw = 1; in kvm_s390_crypto_init()
1002 kvm->arch.crypto.dea_kw = 1; in kvm_s390_crypto_init()
1003 get_random_bytes(kvm->arch.crypto.crycb->aes_wrapping_key_mask, in kvm_s390_crypto_init()
1004 sizeof(kvm->arch.crypto.crycb->aes_wrapping_key_mask)); in kvm_s390_crypto_init()
1005 get_random_bytes(kvm->arch.crypto.crycb->dea_wrapping_key_mask, in kvm_s390_crypto_init()
1006 sizeof(kvm->arch.crypto.crycb->dea_wrapping_key_mask)); in kvm_s390_crypto_init()
1034 kvm->arch.sca = (struct sca_block *) get_zeroed_page(GFP_KERNEL); in kvm_arch_init_vm()
1035 if (!kvm->arch.sca) in kvm_arch_init_vm()
1041 kvm->arch.sca = (struct sca_block *) ((char *) kvm->arch.sca + sca_offset); in kvm_arch_init_vm()
1046 kvm->arch.dbf = debug_register(debug_name, 8, 2, 8 * sizeof(long)); in kvm_arch_init_vm()
1047 if (!kvm->arch.dbf) in kvm_arch_init_vm()
1057 kvm->arch.model.fac = in kvm_arch_init_vm()
1059 if (!kvm->arch.model.fac) in kvm_arch_init_vm()
1063 memcpy(kvm->arch.model.fac->mask, S390_lowcore.stfle_fac_list, in kvm_arch_init_vm()
1067 kvm->arch.model.fac->mask[i] &= kvm_s390_fac_list_mask[i]; in kvm_arch_init_vm()
1069 kvm->arch.model.fac->mask[i] = 0UL; in kvm_arch_init_vm()
1073 memcpy(kvm->arch.model.fac->list, kvm->arch.model.fac->mask, in kvm_arch_init_vm()
1076 kvm_s390_get_cpu_id(&kvm->arch.model.cpu_id); in kvm_arch_init_vm()
1077 kvm->arch.model.ibc = sclp_get_ibc() & 0x0fff; in kvm_arch_init_vm()
1082 spin_lock_init(&kvm->arch.float_int.lock); in kvm_arch_init_vm()
1084 INIT_LIST_HEAD(&kvm->arch.float_int.lists[i]); in kvm_arch_init_vm()
1085 init_waitqueue_head(&kvm->arch.ipte_wq); in kvm_arch_init_vm()
1086 mutex_init(&kvm->arch.ipte_mutex); in kvm_arch_init_vm()
1088 debug_register_view(kvm->arch.dbf, &debug_sprintf_view); in kvm_arch_init_vm()
1092 kvm->arch.gmap = NULL; in kvm_arch_init_vm()
1094 kvm->arch.gmap = gmap_alloc(current->mm, (1UL << 44) - 1); in kvm_arch_init_vm()
1095 if (!kvm->arch.gmap) in kvm_arch_init_vm()
1097 kvm->arch.gmap->private = kvm; in kvm_arch_init_vm()
1098 kvm->arch.gmap->pfault_enabled = 0; in kvm_arch_init_vm()
1101 kvm->arch.css_support = 0; in kvm_arch_init_vm()
1102 kvm->arch.use_irqchip = 0; in kvm_arch_init_vm()
1103 kvm->arch.epoch = 0; in kvm_arch_init_vm()
1105 spin_lock_init(&kvm->arch.start_stop_lock); in kvm_arch_init_vm()
1109 kfree(kvm->arch.crypto.crycb); in kvm_arch_init_vm()
1110 free_page((unsigned long)kvm->arch.model.fac); in kvm_arch_init_vm()
1111 debug_unregister(kvm->arch.dbf); in kvm_arch_init_vm()
1112 free_page((unsigned long)(kvm->arch.sca)); in kvm_arch_init_vm()
1124 (unsigned long *) &vcpu->kvm->arch.sca->mcn); in kvm_arch_vcpu_destroy()
1125 if (vcpu->kvm->arch.sca->cpu[vcpu->vcpu_id].sda == in kvm_arch_vcpu_destroy()
1126 (__u64) vcpu->arch.sie_block) in kvm_arch_vcpu_destroy()
1127 vcpu->kvm->arch.sca->cpu[vcpu->vcpu_id].sda = 0; in kvm_arch_vcpu_destroy()
1132 gmap_free(vcpu->arch.gmap); in kvm_arch_vcpu_destroy()
1136 free_page((unsigned long)(vcpu->arch.sie_block)); in kvm_arch_vcpu_destroy()
1161 free_page((unsigned long)kvm->arch.model.fac); in kvm_arch_destroy_vm()
1162 free_page((unsigned long)(kvm->arch.sca)); in kvm_arch_destroy_vm()
1163 debug_unregister(kvm->arch.dbf); in kvm_arch_destroy_vm()
1164 kfree(kvm->arch.crypto.crycb); in kvm_arch_destroy_vm()
1166 gmap_free(kvm->arch.gmap); in kvm_arch_destroy_vm()
1174 vcpu->arch.gmap = gmap_alloc(current->mm, -1UL); in __kvm_ucontrol_vcpu_init()
1175 if (!vcpu->arch.gmap) in __kvm_ucontrol_vcpu_init()
1177 vcpu->arch.gmap->private = vcpu->kvm; in __kvm_ucontrol_vcpu_init()
1184 vcpu->arch.pfault_token = KVM_S390_PFAULT_TOKEN_INVALID; in kvm_arch_vcpu_init()
1203 save_fp_ctl(&vcpu->arch.host_fpregs.fpc); in kvm_arch_vcpu_load()
1205 save_vx_regs((__vector128 *)&vcpu->arch.host_vregs->vrs); in kvm_arch_vcpu_load()
1207 save_fp_regs(vcpu->arch.host_fpregs.fprs); in kvm_arch_vcpu_load()
1208 save_access_regs(vcpu->arch.host_acrs); in kvm_arch_vcpu_load()
1213 restore_fp_ctl(&vcpu->arch.guest_fpregs.fpc); in kvm_arch_vcpu_load()
1214 restore_fp_regs(vcpu->arch.guest_fpregs.fprs); in kvm_arch_vcpu_load()
1217 gmap_enable(vcpu->arch.gmap); in kvm_arch_vcpu_load()
1218 atomic_set_mask(CPUSTAT_RUNNING, &vcpu->arch.sie_block->cpuflags); in kvm_arch_vcpu_load()
1223 atomic_clear_mask(CPUSTAT_RUNNING, &vcpu->arch.sie_block->cpuflags); in kvm_arch_vcpu_put()
1224 gmap_disable(vcpu->arch.gmap); in kvm_arch_vcpu_put()
1229 save_fp_ctl(&vcpu->arch.guest_fpregs.fpc); in kvm_arch_vcpu_put()
1230 save_fp_regs(vcpu->arch.guest_fpregs.fprs); in kvm_arch_vcpu_put()
1233 restore_fp_ctl(&vcpu->arch.host_fpregs.fpc); in kvm_arch_vcpu_put()
1235 restore_vx_regs((__vector128 *)&vcpu->arch.host_vregs->vrs); in kvm_arch_vcpu_put()
1237 restore_fp_regs(vcpu->arch.host_fpregs.fprs); in kvm_arch_vcpu_put()
1238 restore_access_regs(vcpu->arch.host_acrs); in kvm_arch_vcpu_put()
1244 vcpu->arch.sie_block->gpsw.mask = 0UL; in kvm_s390_vcpu_initial_reset()
1245 vcpu->arch.sie_block->gpsw.addr = 0UL; in kvm_s390_vcpu_initial_reset()
1247 vcpu->arch.sie_block->cputm = 0UL; in kvm_s390_vcpu_initial_reset()
1248 vcpu->arch.sie_block->ckc = 0UL; in kvm_s390_vcpu_initial_reset()
1249 vcpu->arch.sie_block->todpr = 0; in kvm_s390_vcpu_initial_reset()
1250 memset(vcpu->arch.sie_block->gcr, 0, 16 * sizeof(__u64)); in kvm_s390_vcpu_initial_reset()
1251 vcpu->arch.sie_block->gcr[0] = 0xE0UL; in kvm_s390_vcpu_initial_reset()
1252 vcpu->arch.sie_block->gcr[14] = 0xC2000000UL; in kvm_s390_vcpu_initial_reset()
1253 vcpu->arch.guest_fpregs.fpc = 0; in kvm_s390_vcpu_initial_reset()
1254 asm volatile("lfpc %0" : : "Q" (vcpu->arch.guest_fpregs.fpc)); in kvm_s390_vcpu_initial_reset()
1255 vcpu->arch.sie_block->gbea = 1; in kvm_s390_vcpu_initial_reset()
1256 vcpu->arch.sie_block->pp = 0; in kvm_s390_vcpu_initial_reset()
1257 vcpu->arch.pfault_token = KVM_S390_PFAULT_TOKEN_INVALID; in kvm_s390_vcpu_initial_reset()
1267 vcpu->arch.sie_block->epoch = vcpu->kvm->arch.epoch; in kvm_arch_vcpu_postcreate()
1270 vcpu->arch.gmap = vcpu->kvm->arch.gmap; in kvm_arch_vcpu_postcreate()
1278 vcpu->arch.sie_block->ecb3 &= ~(ECB3_AES | ECB3_DEA); in kvm_s390_vcpu_crypto_setup()
1280 if (vcpu->kvm->arch.crypto.aes_kw) in kvm_s390_vcpu_crypto_setup()
1281 vcpu->arch.sie_block->ecb3 |= ECB3_AES; in kvm_s390_vcpu_crypto_setup()
1282 if (vcpu->kvm->arch.crypto.dea_kw) in kvm_s390_vcpu_crypto_setup()
1283 vcpu->arch.sie_block->ecb3 |= ECB3_DEA; in kvm_s390_vcpu_crypto_setup()
1285 vcpu->arch.sie_block->crycbd = vcpu->kvm->arch.crypto.crycbd; in kvm_s390_vcpu_crypto_setup()
1290 free_page(vcpu->arch.sie_block->cbrlo); in kvm_s390_vcpu_unsetup_cmma()
1291 vcpu->arch.sie_block->cbrlo = 0; in kvm_s390_vcpu_unsetup_cmma()
1296 vcpu->arch.sie_block->cbrlo = get_zeroed_page(GFP_KERNEL); in kvm_s390_vcpu_setup_cmma()
1297 if (!vcpu->arch.sie_block->cbrlo) in kvm_s390_vcpu_setup_cmma()
1300 vcpu->arch.sie_block->ecb2 |= 0x80; in kvm_s390_vcpu_setup_cmma()
1301 vcpu->arch.sie_block->ecb2 &= ~0x08; in kvm_s390_vcpu_setup_cmma()
1307 struct kvm_s390_cpu_model *model = &vcpu->kvm->arch.model; in kvm_s390_vcpu_setup_model()
1309 vcpu->arch.cpu_id = model->cpu_id; in kvm_s390_vcpu_setup_model()
1310 vcpu->arch.sie_block->ibc = model->ibc; in kvm_s390_vcpu_setup_model()
1311 vcpu->arch.sie_block->fac = (int) (long) model->fac->list; in kvm_s390_vcpu_setup_model()
1318 atomic_set(&vcpu->arch.sie_block->cpuflags, CPUSTAT_ZARCH | in kvm_arch_vcpu_setup()
1324 vcpu->arch.sie_block->ecb = 6; in kvm_arch_vcpu_setup()
1326 vcpu->arch.sie_block->ecb |= 0x10; in kvm_arch_vcpu_setup()
1328 vcpu->arch.sie_block->ecb2 = 8; in kvm_arch_vcpu_setup()
1329 vcpu->arch.sie_block->eca = 0xC1002000U; in kvm_arch_vcpu_setup()
1331 vcpu->arch.sie_block->eca |= 1; in kvm_arch_vcpu_setup()
1333 vcpu->arch.sie_block->eca |= 0x10000000U; in kvm_arch_vcpu_setup()
1335 vcpu->arch.sie_block->eca |= 0x00020000; in kvm_arch_vcpu_setup()
1336 vcpu->arch.sie_block->ecd |= 0x20000000; in kvm_arch_vcpu_setup()
1338 vcpu->arch.sie_block->ictl |= ICTL_ISKE | ICTL_SSKE | ICTL_RRBE; in kvm_arch_vcpu_setup()
1345 hrtimer_init(&vcpu->arch.ckc_timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); in kvm_arch_vcpu_setup()
1346 vcpu->arch.ckc_timer.function = kvm_s390_idle_wakeup; in kvm_arch_vcpu_setup()
1373 vcpu->arch.sie_block = &sie_page->sie_block; in kvm_arch_vcpu_create()
1374 vcpu->arch.sie_block->itdba = (unsigned long) &sie_page->itdb; in kvm_arch_vcpu_create()
1375 vcpu->arch.host_vregs = &sie_page->vregs; in kvm_arch_vcpu_create()
1377 vcpu->arch.sie_block->icpua = id; in kvm_arch_vcpu_create()
1379 if (!kvm->arch.sca) { in kvm_arch_vcpu_create()
1383 if (!kvm->arch.sca->cpu[id].sda) in kvm_arch_vcpu_create()
1384 kvm->arch.sca->cpu[id].sda = in kvm_arch_vcpu_create()
1385 (__u64) vcpu->arch.sie_block; in kvm_arch_vcpu_create()
1386 vcpu->arch.sie_block->scaoh = in kvm_arch_vcpu_create()
1387 (__u32)(((__u64)kvm->arch.sca) >> 32); in kvm_arch_vcpu_create()
1388 vcpu->arch.sie_block->scaol = (__u32)(__u64)kvm->arch.sca; in kvm_arch_vcpu_create()
1389 set_bit(63 - id, (unsigned long *) &kvm->arch.sca->mcn); in kvm_arch_vcpu_create()
1392 spin_lock_init(&vcpu->arch.local_int.lock); in kvm_arch_vcpu_create()
1393 vcpu->arch.local_int.float_int = &kvm->arch.float_int; in kvm_arch_vcpu_create()
1394 vcpu->arch.local_int.wq = &vcpu->wq; in kvm_arch_vcpu_create()
1395 vcpu->arch.local_int.cpuflags = &vcpu->arch.sie_block->cpuflags; in kvm_arch_vcpu_create()
1401 vcpu->arch.sie_block); in kvm_arch_vcpu_create()
1402 trace_kvm_s390_create_vcpu(id, vcpu, vcpu->arch.sie_block); in kvm_arch_vcpu_create()
1406 free_page((unsigned long)(vcpu->arch.sie_block)); in kvm_arch_vcpu_create()
1420 atomic_set_mask(PROG_BLOCK_SIE, &vcpu->arch.sie_block->prog20); in s390_vcpu_block()
1425 atomic_clear_mask(PROG_BLOCK_SIE, &vcpu->arch.sie_block->prog20); in s390_vcpu_unblock()
1434 atomic_set_mask(CPUSTAT_STOP_INT, &vcpu->arch.sie_block->cpuflags); in exit_sie()
1435 while (vcpu->arch.sie_block->prog0c & PROG_IN_SIE) in exit_sie()
1476 r = put_user(vcpu->arch.sie_block->todpr, in kvm_arch_vcpu_ioctl_get_one_reg()
1480 r = put_user(vcpu->arch.sie_block->epoch, in kvm_arch_vcpu_ioctl_get_one_reg()
1484 r = put_user(vcpu->arch.sie_block->cputm, in kvm_arch_vcpu_ioctl_get_one_reg()
1488 r = put_user(vcpu->arch.sie_block->ckc, in kvm_arch_vcpu_ioctl_get_one_reg()
1492 r = put_user(vcpu->arch.pfault_token, in kvm_arch_vcpu_ioctl_get_one_reg()
1496 r = put_user(vcpu->arch.pfault_compare, in kvm_arch_vcpu_ioctl_get_one_reg()
1500 r = put_user(vcpu->arch.pfault_select, in kvm_arch_vcpu_ioctl_get_one_reg()
1504 r = put_user(vcpu->arch.sie_block->pp, in kvm_arch_vcpu_ioctl_get_one_reg()
1508 r = put_user(vcpu->arch.sie_block->gbea, in kvm_arch_vcpu_ioctl_get_one_reg()
1525 r = get_user(vcpu->arch.sie_block->todpr, in kvm_arch_vcpu_ioctl_set_one_reg()
1529 r = get_user(vcpu->arch.sie_block->epoch, in kvm_arch_vcpu_ioctl_set_one_reg()
1533 r = get_user(vcpu->arch.sie_block->cputm, in kvm_arch_vcpu_ioctl_set_one_reg()
1537 r = get_user(vcpu->arch.sie_block->ckc, in kvm_arch_vcpu_ioctl_set_one_reg()
1541 r = get_user(vcpu->arch.pfault_token, in kvm_arch_vcpu_ioctl_set_one_reg()
1543 if (vcpu->arch.pfault_token == KVM_S390_PFAULT_TOKEN_INVALID) in kvm_arch_vcpu_ioctl_set_one_reg()
1547 r = get_user(vcpu->arch.pfault_compare, in kvm_arch_vcpu_ioctl_set_one_reg()
1551 r = get_user(vcpu->arch.pfault_select, in kvm_arch_vcpu_ioctl_set_one_reg()
1555 r = get_user(vcpu->arch.sie_block->pp, in kvm_arch_vcpu_ioctl_set_one_reg()
1559 r = get_user(vcpu->arch.sie_block->gbea, in kvm_arch_vcpu_ioctl_set_one_reg()
1591 memcpy(&vcpu->arch.sie_block->gcr, &sregs->crs, sizeof(sregs->crs)); in kvm_arch_vcpu_ioctl_set_sregs()
1600 memcpy(&sregs->crs, &vcpu->arch.sie_block->gcr, sizeof(sregs->crs)); in kvm_arch_vcpu_ioctl_get_sregs()
1608 memcpy(&vcpu->arch.guest_fpregs.fprs, &fpu->fprs, sizeof(fpu->fprs)); in kvm_arch_vcpu_ioctl_set_fpu()
1609 vcpu->arch.guest_fpregs.fpc = fpu->fpc; in kvm_arch_vcpu_ioctl_set_fpu()
1610 restore_fp_ctl(&vcpu->arch.guest_fpregs.fpc); in kvm_arch_vcpu_ioctl_set_fpu()
1611 restore_fp_regs(vcpu->arch.guest_fpregs.fprs); in kvm_arch_vcpu_ioctl_set_fpu()
1617 memcpy(&fpu->fprs, &vcpu->arch.guest_fpregs.fprs, sizeof(fpu->fprs)); in kvm_arch_vcpu_ioctl_get_fpu()
1618 fpu->fpc = vcpu->arch.guest_fpregs.fpc; in kvm_arch_vcpu_ioctl_get_fpu()
1659 atomic_set_mask(CPUSTAT_P, &vcpu->arch.sie_block->cpuflags); in kvm_arch_vcpu_ioctl_set_guest_debug()
1664 atomic_clear_mask(CPUSTAT_P, &vcpu->arch.sie_block->cpuflags); in kvm_arch_vcpu_ioctl_set_guest_debug()
1665 vcpu->arch.guestdbg.last_bp = 0; in kvm_arch_vcpu_ioctl_set_guest_debug()
1671 atomic_clear_mask(CPUSTAT_P, &vcpu->arch.sie_block->cpuflags); in kvm_arch_vcpu_ioctl_set_guest_debug()
1691 vcpu->kvm->arch.user_cpu_state_ctrl = 1; in kvm_arch_vcpu_ioctl_set_mpstate()
1717 if (!kvm->arch.use_cmma) in kvm_s390_cmma_enabled()
1724 return atomic_read(&vcpu->arch.sie_block->cpuflags) & CPUSTAT_IBS; in ibs_enabled()
1740 rc = gmap_ipte_notify(vcpu->arch.gmap, in kvm_s390_handle_requests()
1749 vcpu->arch.sie_block->ihcpu = 0xffff; in kvm_s390_handle_requests()
1757 &vcpu->arch.sie_block->cpuflags); in kvm_s390_handle_requests()
1766 &vcpu->arch.sie_block->cpuflags); in kvm_s390_handle_requests()
1789 return gmap_fault(vcpu->arch.gmap, gpa, in kvm_arch_fault_in_page()
1813 trace_kvm_s390_pfault_init(vcpu, work->arch.pfault_token); in kvm_arch_async_page_not_present()
1814 __kvm_inject_pfault_token(vcpu, true, work->arch.pfault_token); in kvm_arch_async_page_not_present()
1820 trace_kvm_s390_pfault_done(vcpu, work->arch.pfault_token); in kvm_arch_async_page_present()
1821 __kvm_inject_pfault_token(vcpu, false, work->arch.pfault_token); in kvm_arch_async_page_present()
1842 struct kvm_arch_async_pf arch; in kvm_arch_setup_async_pf() local
1845 if (vcpu->arch.pfault_token == KVM_S390_PFAULT_TOKEN_INVALID) in kvm_arch_setup_async_pf()
1847 if ((vcpu->arch.sie_block->gpsw.mask & vcpu->arch.pfault_select) != in kvm_arch_setup_async_pf()
1848 vcpu->arch.pfault_compare) in kvm_arch_setup_async_pf()
1854 if (!(vcpu->arch.sie_block->gcr[0] & 0x200ul)) in kvm_arch_setup_async_pf()
1856 if (!vcpu->arch.gmap->pfault_enabled) in kvm_arch_setup_async_pf()
1861 if (read_guest_real(vcpu, vcpu->arch.pfault_token, &arch.pfault_token, 8)) in kvm_arch_setup_async_pf()
1864 rc = kvm_setup_async_pf(vcpu, current->thread.gmap_addr, hva, &arch); in kvm_arch_setup_async_pf()
1879 memcpy(&vcpu->arch.sie_block->gg14, &vcpu->run->s.regs.gprs[14], 16); in vcpu_pre_run()
1902 vcpu->arch.sie_block->icptcode = 0; in vcpu_pre_run()
1903 cpuflags = atomic_read(&vcpu->arch.sie_block->cpuflags); in vcpu_pre_run()
1912 psw_t *psw = &vcpu->arch.sie_block->gpsw; in vcpu_post_run_fault_in_sie()
1940 vcpu->arch.sie_block->icptcode); in vcpu_post_run()
1941 trace_kvm_s390_sie_exit(vcpu, vcpu->arch.sie_block->icptcode); in vcpu_post_run()
1969 memcpy(&vcpu->run->s.regs.gprs[14], &vcpu->arch.sie_block->gg14, 16); in vcpu_post_run()
1974 rc = vcpu->arch.sie_block->icptcode ? -EOPNOTSUPP : 0; in vcpu_post_run()
2005 exit_reason = sie64a(vcpu->arch.sie_block, in __vcpu_run()
2019 vcpu->arch.sie_block->gpsw.mask = kvm_run->psw_mask; in sync_regs()
2020 vcpu->arch.sie_block->gpsw.addr = kvm_run->psw_addr; in sync_regs()
2024 memcpy(&vcpu->arch.sie_block->gcr, &kvm_run->s.regs.crs, 128); in sync_regs()
2029 vcpu->arch.sie_block->cputm = kvm_run->s.regs.cputm; in sync_regs()
2030 vcpu->arch.sie_block->ckc = kvm_run->s.regs.ckc; in sync_regs()
2031 vcpu->arch.sie_block->todpr = kvm_run->s.regs.todpr; in sync_regs()
2032 vcpu->arch.sie_block->pp = kvm_run->s.regs.pp; in sync_regs()
2033 vcpu->arch.sie_block->gbea = kvm_run->s.regs.gbea; in sync_regs()
2036 vcpu->arch.pfault_token = kvm_run->s.regs.pft; in sync_regs()
2037 vcpu->arch.pfault_select = kvm_run->s.regs.pfs; in sync_regs()
2038 vcpu->arch.pfault_compare = kvm_run->s.regs.pfc; in sync_regs()
2039 if (vcpu->arch.pfault_token == KVM_S390_PFAULT_TOKEN_INVALID) in sync_regs()
2047 kvm_run->psw_mask = vcpu->arch.sie_block->gpsw.mask; in store_regs()
2048 kvm_run->psw_addr = vcpu->arch.sie_block->gpsw.addr; in store_regs()
2050 memcpy(&kvm_run->s.regs.crs, &vcpu->arch.sie_block->gcr, 128); in store_regs()
2051 kvm_run->s.regs.cputm = vcpu->arch.sie_block->cputm; in store_regs()
2052 kvm_run->s.regs.ckc = vcpu->arch.sie_block->ckc; in store_regs()
2053 kvm_run->s.regs.todpr = vcpu->arch.sie_block->todpr; in store_regs()
2054 kvm_run->s.regs.pp = vcpu->arch.sie_block->pp; in store_regs()
2055 kvm_run->s.regs.gbea = vcpu->arch.sie_block->gbea; in store_regs()
2056 kvm_run->s.regs.pft = vcpu->arch.pfault_token; in store_regs()
2057 kvm_run->s.regs.pfs = vcpu->arch.pfault_select; in store_regs()
2058 kvm_run->s.regs.pfc = vcpu->arch.pfault_compare; in store_regs()
2100 kvm_run->s390_sieic.icptcode = vcpu->arch.sie_block->icptcode; in kvm_arch_vcpu_ioctl_run()
2101 kvm_run->s390_sieic.ipa = vcpu->arch.sie_block->ipa; in kvm_arch_vcpu_ioctl_run()
2102 kvm_run->s390_sieic.ipb = vcpu->arch.sie_block->ipb; in kvm_arch_vcpu_ioctl_run()
2144 vcpu->arch.guest_fpregs.fprs, 128); in kvm_s390_store_status_unloaded()
2148 &vcpu->arch.sie_block->gpsw, 16); in kvm_s390_store_status_unloaded()
2154 &vcpu->arch.guest_fpregs.fpc, 4); in kvm_s390_store_status_unloaded()
2156 &vcpu->arch.sie_block->todpr, 4); in kvm_s390_store_status_unloaded()
2158 &vcpu->arch.sie_block->cputm, 8); in kvm_s390_store_status_unloaded()
2159 clkcomp = vcpu->arch.sie_block->ckc >> 8; in kvm_s390_store_status_unloaded()
2165 &vcpu->arch.sie_block->gcr, 128); in kvm_s390_store_status_unloaded()
2176 save_fp_ctl(&vcpu->arch.guest_fpregs.fpc); in kvm_s390_vcpu_store_status()
2177 save_fp_regs(vcpu->arch.guest_fpregs.fprs); in kvm_s390_vcpu_store_status()
2245 spin_lock(&vcpu->kvm->arch.start_stop_lock); in kvm_s390_vcpu_start()
2265 atomic_clear_mask(CPUSTAT_STOPPED, &vcpu->arch.sie_block->cpuflags); in kvm_s390_vcpu_start()
2271 spin_unlock(&vcpu->kvm->arch.start_stop_lock); in kvm_s390_vcpu_start()
2285 spin_lock(&vcpu->kvm->arch.start_stop_lock); in kvm_s390_vcpu_stop()
2291 atomic_set_mask(CPUSTAT_STOPPED, &vcpu->arch.sie_block->cpuflags); in kvm_s390_vcpu_stop()
2309 spin_unlock(&vcpu->kvm->arch.start_stop_lock); in kvm_s390_vcpu_stop()
2323 if (!vcpu->kvm->arch.css_support) { in kvm_vcpu_ioctl_enable_cap()
2324 vcpu->kvm->arch.css_support = 1; in kvm_vcpu_ioctl_enable_cap()
2389 kvm_s390_inject_prog_irq(vcpu, &vcpu->arch.pgm); in kvm_s390_guest_mem_op()
2468 r = gmap_map_segment(vcpu->arch.gmap, ucasmap.user_addr, in kvm_arch_vcpu_ioctl()
2485 r = gmap_unmap_segment(vcpu->arch.gmap, ucasmap.vcpu_addr, in kvm_arch_vcpu_ioctl()
2491 r = gmap_fault(vcpu->arch.gmap, arg, 0); in kvm_arch_vcpu_ioctl()
2555 vmf->page = virt_to_page(vcpu->arch.sie_block); in kvm_arch_vcpu_fault()
2607 rc = gmap_map_segment(kvm->arch.gmap, mem->userspace_addr, in kvm_arch_commit_memory_region()