/kernel/linux/linux-6.6/arch/s390/kvm/ |
H A D | intercept.c | 27 struct kvm_s390_sie_block *sie_block = vcpu->arch.sie_block; in kvm_s390_get_ilen() local 30 switch (vcpu->arch.sie_block->icptcode) { in kvm_s390_get_ilen() 37 ilen = insn_length(vcpu->arch.sie_block->ipa >> 8); in kvm_s390_get_ilen() 39 if (sie_block->icptstatus & 1) { in kvm_s390_get_ilen() 40 ilen = (sie_block->icptstatus >> 4) & 0x6; in kvm_s390_get_ilen() 47 ilen = vcpu->arch.sie_block->pgmilc & 0x6; in kvm_s390_get_ilen() 93 int viwhy = vcpu->arch.sie_block->ipb >> 16; in handle_validity() 110 vcpu->arch.sie_block->ipa, in handle_instruction() 111 vcpu->arch.sie_block in handle_instruction() [all...] |
H A D | guestdbg.c | 62 u64 *cr9 = &vcpu->arch.sie_block->gcr[9]; in enable_all_hw_bp() 63 u64 *cr10 = &vcpu->arch.sie_block->gcr[10]; in enable_all_hw_bp() 64 u64 *cr11 = &vcpu->arch.sie_block->gcr[11]; in enable_all_hw_bp() 102 u64 *cr9 = &vcpu->arch.sie_block->gcr[9]; in enable_all_hw_wp() 103 u64 *cr10 = &vcpu->arch.sie_block->gcr[10]; in enable_all_hw_wp() 104 u64 *cr11 = &vcpu->arch.sie_block->gcr[11]; in enable_all_hw_wp() 132 vcpu->arch.guestdbg.cr0 = vcpu->arch.sie_block->gcr[0]; in kvm_s390_backup_guest_per_regs() 133 vcpu->arch.guestdbg.cr9 = vcpu->arch.sie_block->gcr[9]; in kvm_s390_backup_guest_per_regs() 134 vcpu->arch.guestdbg.cr10 = vcpu->arch.sie_block->gcr[10]; in kvm_s390_backup_guest_per_regs() 135 vcpu->arch.guestdbg.cr11 = vcpu->arch.sie_block in kvm_s390_backup_guest_per_regs() [all...] |
H A D | kvm-s390.h | 24 #define IS_TE_ENABLED(vcpu) ((vcpu->arch.sie_block->ecb & ECB_TE)) 27 ((*(char *)phys_to_virt((vcpu)->arch.sie_block->itdba) == TDB_FORMAT1)) 57 d_vcpu->arch.sie_block->gpsw.mask, d_vcpu->arch.sie_block->gpsw.addr,\ 63 atomic_or(flags, &vcpu->arch.sie_block->cpuflags); in kvm_s390_set_cpuflags() 68 atomic_andnot(flags, &vcpu->arch.sie_block->cpuflags); in kvm_s390_clear_cpuflags() 73 return (atomic_read(&vcpu->arch.sie_block->cpuflags) & flags) == flags; in kvm_s390_test_cpuflags() 100 return vcpu->arch.sie_block->prefix << GUEST_PREFIX_SHIFT; in kvm_s390_get_prefix() 107 vcpu->arch.sie_block->prefix = prefix >> GUEST_PREFIX_SHIFT; in kvm_s390_set_prefix() 114 u32 base2 = vcpu->arch.sie_block in kvm_s390_get_base_disp_s() 314 struct kvm_s390_sie_block *sie_block = vcpu->arch.sie_block; kvm_s390_rewind_psw() local [all...] |
H A D | priv.c | 38 vcpu->arch.sie_block->ecb3 |= ECB3_RI; in handle_ri() 47 if ((vcpu->arch.sie_block->ipa & 0xf) <= 4) in kvm_s390_handle_aa() 64 vcpu->arch.sie_block->ecb |= ECB_GS; in handle_gs() 65 vcpu->arch.sie_block->ecd |= ECD_HOSTREGMGMT; in handle_gs() 75 int code = vcpu->arch.sie_block->ipb & 0xff; in kvm_s390_handle_e3() 92 if (vcpu->arch.sie_block->gpsw.mask & PSW_MASK_PSTATE) in handle_set_clock() 131 if (vcpu->arch.sie_block->gpsw.mask & PSW_MASK_PSTATE) in handle_set_prefix() 169 if (vcpu->arch.sie_block->gpsw.mask & PSW_MASK_PSTATE) in handle_store_prefix() 199 if (vcpu->arch.sie_block->gpsw.mask & PSW_MASK_PSTATE) in handle_store_cpu_address() 233 vcpu->arch.sie_block in kvm_s390_skey_check_enable() [all...] |
H A D | kvm-s390.c | 309 kvm_clock_sync_scb(vcpu->arch.sie_block, *delta); in kvm_clock_sync() 311 kvm->arch.epoch = vcpu->arch.sie_block->epoch; in kvm_clock_sync() 312 kvm->arch.epdx = vcpu->arch.sie_block->epdx; in kvm_clock_sync() 1097 vcpu->arch.sie_block->ecb2 |= ECB2_ZPCI_LSI; in kvm_s390_vcpu_pci_setup() 1098 vcpu->arch.sie_block->ecb3 |= ECB3_AISII + ECB3_AISI; in kvm_s390_vcpu_pci_setup() 3453 free_page((unsigned long)(vcpu->arch.sie_block)); in kvm_arch_vcpu_destroy() 3524 vcpu->arch.sie_block->scaoh = sca_phys >> 32; in sca_add_vcpu() 3525 vcpu->arch.sie_block->scaol = sca_phys; in sca_add_vcpu() 3533 sca->cpu[vcpu->vcpu_id].sda = virt_to_phys(vcpu->arch.sie_block); in sca_add_vcpu() 3534 vcpu->arch.sie_block in sca_add_vcpu() [all...] |
H A D | interrupt.c | 152 return !(vcpu->arch.sie_block->gpsw.mask & PSW_MASK_EXT); in psw_extint_disabled() 157 return !(vcpu->arch.sie_block->gpsw.mask & PSW_MASK_IO); in psw_ioint_disabled() 162 return !(vcpu->arch.sie_block->gpsw.mask & PSW_MASK_MCHECK); in psw_mchk_disabled() 175 !(vcpu->arch.sie_block->gcr[0] & CR0_CLOCK_COMPARATOR_SUBMASK)) in ckc_interrupts_enabled() 186 const u64 ckc = vcpu->arch.sie_block->ckc; in ckc_irq_pending() 188 if (vcpu->arch.sie_block->gcr[0] & CR0_CLOCK_COMPARATOR_SIGN) { in ckc_irq_pending() 200 (vcpu->arch.sie_block->gcr[0] & CR0_CPU_TIMER_SUBMASK); in cpu_timer_interrupts_enabled() 357 if (!(vcpu->arch.sie_block->gcr[6] & isc_to_isc_bits(i))) in disable_iscs() 377 if (!(vcpu->arch.sie_block->gcr[0] & CR0_EXTERNAL_CALL_SUBMASK)) in deliverable_irqs() 379 if (!(vcpu->arch.sie_block in deliverable_irqs() [all...] |
H A D | diag.c | 25 start = vcpu->run->s.regs.gprs[(vcpu->arch.sie_block->ipa & 0xf0) >> 4]; in diag_release_pages() 26 end = vcpu->run->s.regs.gprs[vcpu->arch.sie_block->ipa & 0xf] + PAGE_SIZE; in diag_release_pages() 72 u16 rx = (vcpu->arch.sie_block->ipa & 0xf0) >> 4; in __diag_page_ref_service() 73 u16 ry = (vcpu->arch.sie_block->ipa & 0x0f); in __diag_page_ref_service() 172 tid = vcpu->run->s.regs.gprs[(vcpu->arch.sie_block->ipa & 0xf0) >> 4]; in __diag_time_slice_end_directed() 214 unsigned int reg = vcpu->arch.sie_block->ipa & 0xf; in __diag_ipl_functions() 286 if (vcpu->arch.sie_block->gpsw.mask & PSW_MASK_PSTATE) in kvm_s390_handle_diag()
|
H A D | gaccess.c | 398 asce->val = vcpu->arch.sie_block->gcr[1]; in ar_translation() 401 asce->val = vcpu->arch.sie_block->gcr[7]; in ar_translation() 409 ald_addr = vcpu->arch.sie_block->gcr[5]; in ar_translation() 411 ald_addr = vcpu->arch.sie_block->gcr[2]; in ar_translation() 444 eax = (vcpu->arch.sie_block->gcr[8] >> 16) & 0xffff; in ar_translation() 548 tec->as = psw_bits(vcpu->arch.sie_block->gpsw).as; in trans_exc_ending() 576 struct psw_bits psw = psw_bits(vcpu->arch.sie_block->gpsw); in get_vcpu_asce() 589 asce->val = vcpu->arch.sie_block->gcr[1]; in get_vcpu_asce() 592 asce->val = vcpu->arch.sie_block->gcr[7]; in get_vcpu_asce() 595 asce->val = vcpu->arch.sie_block in get_vcpu_asce() [all...] |
H A D | trace-s390.h | 44 struct kvm_s390_sie_block *sie_block), 45 TP_ARGS(id, vcpu, sie_block), 50 __field(struct kvm_s390_sie_block *, sie_block) 56 __entry->sie_block = sie_block; 60 __entry->id, __entry->vcpu, __entry->sie_block)
|
H A D | gaccess.h | 89 return _kvm_s390_logical_to_effective(&vcpu->arch.sie_block->gpsw, ga); in kvm_s390_logical_to_effective() 281 u8 access_key = psw_bits(vcpu->arch.sie_block->gpsw).key; in write_guest() 325 u8 access_key = psw_bits(vcpu->arch.sie_block->gpsw).key; in read_guest() 348 u8 access_key = psw_bits(vcpu->arch.sie_block->gpsw).key; in read_guest_instr()
|
H A D | sigp.c | 76 psw = &dst_vcpu->arch.sie_block->gpsw; in __sigp_conditional_emergency() 77 p_asn = dst_vcpu->arch.sie_block->gcr[4] & 0xffff; /* Primary ASN */ in __sigp_conditional_emergency() 78 s_asn = dst_vcpu->arch.sie_block->gcr[3] & 0xffff; /* Secondary ASN */ in __sigp_conditional_emergency() 427 int r1 = (vcpu->arch.sie_block->ipa & 0x00f0) >> 4; in kvm_s390_handle_sigp() 428 int r3 = vcpu->arch.sie_block->ipa & 0x000f; in kvm_s390_handle_sigp() 435 if (vcpu->arch.sie_block->gpsw.mask & PSW_MASK_PSTATE) in kvm_s390_handle_sigp() 478 int r3 = vcpu->arch.sie_block->ipa & 0x000f; in kvm_s390_handle_sigp_pei()
|
H A D | pv.c | 84 free_page((unsigned long)sida_addr(vcpu->arch.sie_block)); in kvm_s390_pv_destroy_cpu() 85 vcpu->arch.sie_block->pv_handle_cpu = 0; in kvm_s390_pv_destroy_cpu() 86 vcpu->arch.sie_block->pv_handle_config = 0; in kvm_s390_pv_destroy_cpu() 88 vcpu->arch.sie_block->sdf = 0; in kvm_s390_pv_destroy_cpu() 94 vcpu->arch.sie_block->gbea = 1; in kvm_s390_pv_destroy_cpu() 119 uvcb.num = vcpu->arch.sie_block->icpua; in kvm_s390_pv_create_cpu() 120 uvcb.state_origin = virt_to_phys(vcpu->arch.sie_block); in kvm_s390_pv_create_cpu() 130 vcpu->arch.sie_block->sidad = virt_to_phys(sida_addr); in kvm_s390_pv_create_cpu() 149 vcpu->arch.sie_block->pv_handle_cpu = uvcb.cpu_handle; in kvm_s390_pv_create_cpu() 150 vcpu->arch.sie_block in kvm_s390_pv_create_cpu() [all...] |
/kernel/linux/linux-5.10/arch/s390/kvm/ |
H A D | intercept.c | 27 struct kvm_s390_sie_block *sie_block = vcpu->arch.sie_block; in kvm_s390_get_ilen() local 30 switch (vcpu->arch.sie_block->icptcode) { in kvm_s390_get_ilen() 37 ilen = insn_length(vcpu->arch.sie_block->ipa >> 8); in kvm_s390_get_ilen() 39 if (sie_block->icptstatus & 1) { in kvm_s390_get_ilen() 40 ilen = (sie_block->icptstatus >> 4) & 0x6; in kvm_s390_get_ilen() 47 ilen = vcpu->arch.sie_block->pgmilc & 0x6; in kvm_s390_get_ilen() 93 int viwhy = vcpu->arch.sie_block->ipb >> 16; in handle_validity() 110 vcpu->arch.sie_block->ipa, in handle_instruction() 111 vcpu->arch.sie_block in handle_instruction() [all...] |
H A D | guestdbg.c | 62 u64 *cr9 = &vcpu->arch.sie_block->gcr[9]; in enable_all_hw_bp() 63 u64 *cr10 = &vcpu->arch.sie_block->gcr[10]; in enable_all_hw_bp() 64 u64 *cr11 = &vcpu->arch.sie_block->gcr[11]; in enable_all_hw_bp() 102 u64 *cr9 = &vcpu->arch.sie_block->gcr[9]; in enable_all_hw_wp() 103 u64 *cr10 = &vcpu->arch.sie_block->gcr[10]; in enable_all_hw_wp() 104 u64 *cr11 = &vcpu->arch.sie_block->gcr[11]; in enable_all_hw_wp() 132 vcpu->arch.guestdbg.cr0 = vcpu->arch.sie_block->gcr[0]; in kvm_s390_backup_guest_per_regs() 133 vcpu->arch.guestdbg.cr9 = vcpu->arch.sie_block->gcr[9]; in kvm_s390_backup_guest_per_regs() 134 vcpu->arch.guestdbg.cr10 = vcpu->arch.sie_block->gcr[10]; in kvm_s390_backup_guest_per_regs() 135 vcpu->arch.guestdbg.cr11 = vcpu->arch.sie_block in kvm_s390_backup_guest_per_regs() [all...] |
H A D | kvm-s390.h | 24 #define IS_TE_ENABLED(vcpu) ((vcpu->arch.sie_block->ecb & ECB_TE)) 26 #define IS_ITDB_VALID(vcpu) ((*(char *)vcpu->arch.sie_block->itdba == TDB_FORMAT1)) 56 d_vcpu->arch.sie_block->gpsw.mask, d_vcpu->arch.sie_block->gpsw.addr,\ 62 atomic_or(flags, &vcpu->arch.sie_block->cpuflags); in kvm_s390_set_cpuflags() 67 atomic_andnot(flags, &vcpu->arch.sie_block->cpuflags); in kvm_s390_clear_cpuflags() 72 return (atomic_read(&vcpu->arch.sie_block->cpuflags) & flags) == flags; in kvm_s390_test_cpuflags() 99 return vcpu->arch.sie_block->prefix << GUEST_PREFIX_SHIFT; in kvm_s390_get_prefix() 106 vcpu->arch.sie_block->prefix = prefix >> GUEST_PREFIX_SHIFT; in kvm_s390_set_prefix() 113 u32 base2 = vcpu->arch.sie_block in kvm_s390_get_base_disp_s() 285 struct kvm_s390_sie_block *sie_block = vcpu->arch.sie_block; kvm_s390_rewind_psw() local [all...] |
H A D | priv.c | 40 vcpu->arch.sie_block->ecb3 |= ECB3_RI; in handle_ri() 49 if ((vcpu->arch.sie_block->ipa & 0xf) <= 4) in kvm_s390_handle_aa() 66 vcpu->arch.sie_block->ecb |= ECB_GS; in handle_gs() 67 vcpu->arch.sie_block->ecd |= ECD_HOSTREGMGMT; in handle_gs() 77 int code = vcpu->arch.sie_block->ipb & 0xff; in kvm_s390_handle_e3() 94 if (vcpu->arch.sie_block->gpsw.mask & PSW_MASK_PSTATE) in handle_set_clock() 133 if (vcpu->arch.sie_block->gpsw.mask & PSW_MASK_PSTATE) in handle_set_prefix() 171 if (vcpu->arch.sie_block->gpsw.mask & PSW_MASK_PSTATE) in handle_store_prefix() 201 if (vcpu->arch.sie_block->gpsw.mask & PSW_MASK_PSTATE) in handle_store_cpu_address() 235 vcpu->arch.sie_block in kvm_s390_skey_check_enable() [all...] |
H A D | kvm-s390.c | 285 kvm_clock_sync_scb(vcpu->arch.sie_block, *delta); in kvm_clock_sync() 287 kvm->arch.epoch = vcpu->arch.sie_block->epoch; in kvm_clock_sync() 288 kvm->arch.epdx = vcpu->arch.sie_block->epdx; in kvm_clock_sync() 2789 free_page((unsigned long)(vcpu->arch.sie_block)); in kvm_arch_vcpu_destroy() 2869 vcpu->arch.sie_block->scaoh = (__u32)(((__u64)sca) >> 32); in sca_add_vcpu() 2870 vcpu->arch.sie_block->scaol = (__u32)(__u64)sca; in sca_add_vcpu() 2877 sca->cpu[vcpu->vcpu_id].sda = (__u64) vcpu->arch.sie_block; in sca_add_vcpu() 2878 vcpu->arch.sie_block->scaoh = (__u32)(((__u64)sca) >> 32); in sca_add_vcpu() 2879 vcpu->arch.sie_block->scaol = (__u32)(__u64)sca & ~0x3fU; in sca_add_vcpu() 2880 vcpu->arch.sie_block in sca_add_vcpu() [all...] |
H A D | interrupt.c | 150 return !(vcpu->arch.sie_block->gpsw.mask & PSW_MASK_EXT); in psw_extint_disabled() 155 return !(vcpu->arch.sie_block->gpsw.mask & PSW_MASK_IO); in psw_ioint_disabled() 160 return !(vcpu->arch.sie_block->gpsw.mask & PSW_MASK_MCHECK); in psw_mchk_disabled() 173 !(vcpu->arch.sie_block->gcr[0] & CR0_CLOCK_COMPARATOR_SUBMASK)) in ckc_interrupts_enabled() 184 const u64 ckc = vcpu->arch.sie_block->ckc; in ckc_irq_pending() 186 if (vcpu->arch.sie_block->gcr[0] & CR0_CLOCK_COMPARATOR_SIGN) { in ckc_irq_pending() 198 (vcpu->arch.sie_block->gcr[0] & CR0_CPU_TIMER_SUBMASK); in cpu_timer_interrupts_enabled() 365 if (!(vcpu->arch.sie_block->gcr[6] & isc_to_isc_bits(i))) in disable_iscs() 385 if (!(vcpu->arch.sie_block->gcr[0] & CR0_EXTERNAL_CALL_SUBMASK)) in deliverable_irqs() 387 if (!(vcpu->arch.sie_block in deliverable_irqs() [all...] |
H A D | pv.c | 35 free_page(sida_origin(vcpu->arch.sie_block)); in kvm_s390_pv_destroy_cpu() 36 vcpu->arch.sie_block->pv_handle_cpu = 0; in kvm_s390_pv_destroy_cpu() 37 vcpu->arch.sie_block->pv_handle_config = 0; in kvm_s390_pv_destroy_cpu() 39 vcpu->arch.sie_block->sdf = 0; in kvm_s390_pv_destroy_cpu() 45 vcpu->arch.sie_block->gbea = 1; in kvm_s390_pv_destroy_cpu() 69 uvcb.num = vcpu->arch.sie_block->icpua; in kvm_s390_pv_create_cpu() 70 uvcb.state_origin = (u64)vcpu->arch.sie_block; in kvm_s390_pv_create_cpu() 74 vcpu->arch.sie_block->sidad = __get_free_page(GFP_KERNEL | __GFP_ZERO); in kvm_s390_pv_create_cpu() 75 if (!vcpu->arch.sie_block->sidad) { in kvm_s390_pv_create_cpu() 98 vcpu->arch.sie_block in kvm_s390_pv_create_cpu() [all...] |
H A D | diag.c | 25 start = vcpu->run->s.regs.gprs[(vcpu->arch.sie_block->ipa & 0xf0) >> 4]; in diag_release_pages() 26 end = vcpu->run->s.regs.gprs[vcpu->arch.sie_block->ipa & 0xf] + PAGE_SIZE; in diag_release_pages() 72 u16 rx = (vcpu->arch.sie_block->ipa & 0xf0) >> 4; in __diag_page_ref_service() 73 u16 ry = (vcpu->arch.sie_block->ipa & 0x0f); in __diag_page_ref_service() 158 tid = vcpu->run->s.regs.gprs[(vcpu->arch.sie_block->ipa & 0xf0) >> 4]; in __diag_time_slice_end_directed() 187 unsigned int reg = vcpu->arch.sie_block->ipa & 0xf; in __diag_ipl_functions() 259 if (vcpu->arch.sie_block->gpsw.mask & PSW_MASK_PSTATE) in kvm_s390_handle_diag()
|
H A D | gaccess.c | 266 if (vcpu->arch.sie_block->eca & ECA_SII) { in ipte_lock_held() 365 if (vcpu->arch.sie_block->eca & ECA_SII) in ipte_lock() 373 if (vcpu->arch.sie_block->eca & ECA_SII) in ipte_unlock() 397 asce->val = vcpu->arch.sie_block->gcr[1]; in ar_translation() 400 asce->val = vcpu->arch.sie_block->gcr[7]; in ar_translation() 408 ald_addr = vcpu->arch.sie_block->gcr[5]; in ar_translation() 410 ald_addr = vcpu->arch.sie_block->gcr[2]; in ar_translation() 443 eax = (vcpu->arch.sie_block->gcr[8] >> 16) & 0xffff; in ar_translation() 536 tec->as = psw_bits(vcpu->arch.sie_block->gpsw).as; in trans_exc() 558 struct psw_bits psw = psw_bits(vcpu->arch.sie_block in get_vcpu_asce() [all...] |
H A D | trace-s390.h | 44 struct kvm_s390_sie_block *sie_block), 45 TP_ARGS(id, vcpu, sie_block), 50 __field(struct kvm_s390_sie_block *, sie_block) 56 __entry->sie_block = sie_block; 60 __entry->id, __entry->vcpu, __entry->sie_block)
|
H A D | sigp.c | 76 psw = &dst_vcpu->arch.sie_block->gpsw; in __sigp_conditional_emergency() 77 p_asn = dst_vcpu->arch.sie_block->gcr[4] & 0xffff; /* Primary ASN */ in __sigp_conditional_emergency() 78 s_asn = dst_vcpu->arch.sie_block->gcr[3] & 0xffff; /* Secondary ASN */ in __sigp_conditional_emergency() 439 int r1 = (vcpu->arch.sie_block->ipa & 0x00f0) >> 4; in kvm_s390_handle_sigp() 440 int r3 = vcpu->arch.sie_block->ipa & 0x000f; in kvm_s390_handle_sigp() 447 if (vcpu->arch.sie_block->gpsw.mask & PSW_MASK_PSTATE) in kvm_s390_handle_sigp() 490 int r3 = vcpu->arch.sie_block->ipa & 0x000f; in kvm_s390_handle_sigp_pei()
|
/kernel/linux/linux-6.6/arch/s390/include/asm/ |
H A D | kvm_host.h | 145 #define sida_addr(sie_block) phys_to_virt((sie_block)->sidad & PAGE_MASK) 146 #define sida_size(sie_block) \ 147 ((((sie_block)->sidad & SIDAD_SIZE_MASK) + 1) * PAGE_SIZE) 374 struct kvm_s390_sie_block sie_block; member 741 struct kvm_s390_sie_block *sie_block; member 759 * The seqcount protects updates to cputm_start and sie_block.cputm, 1031 int __sie64a(phys_addr_t sie_block_phys, struct kvm_s390_sie_block *sie_block, u64 *rsa); 1033 static inline int sie64a(struct kvm_s390_sie_block *sie_block, u64 *rsa) in sie64a() argument 1035 return __sie64a(virt_to_phys(sie_block), sie_bloc in sie64a() [all...] |
/kernel/linux/linux-5.10/arch/s390/kernel/ |
H A D | nmi.c | 307 struct kvm_s390_sie_block *sie_block = in s390_backup_mcck_info() local 310 if (sie_block == NULL) in s390_backup_mcck_info() 314 sie_page = container_of(sie_block, struct sie_page, sie_block); in s390_backup_mcck_info()
|