Loading Documentation/virt/kvm/api.rst +8 −0 Original line number Diff line number Diff line Loading @@ -9438,6 +9438,14 @@ KVM exits with the register state of either the L1 or L2 guest depending on which executed at the time of an exit. Userspace must take care to differentiate between these cases. 8.47 KVM_CAP_S390_VSIE_ESAMODE ------------------------------ :Architectures: s390 The presence of this capability indicates that the nested KVM guest can start in ESA mode. 9. Known KVM API problems ========================= Loading arch/s390/include/asm/kvm_host.h +1 −0 Original line number Diff line number Diff line Loading @@ -656,6 +656,7 @@ struct kvm_arch { int user_stsi; int user_instr0; int user_operexec; int allow_vsie_esamode; struct s390_io_adapter *adapters[MAX_S390_IO_ADAPTERS]; wait_queue_head_t ipte_wq; int ipte_lock_count; Loading arch/s390/include/asm/kvm_host_types.h +1 −2 Original line number Diff line number Diff line Loading @@ -137,8 +137,7 @@ struct mcck_volatile_info { struct kvm_s390_sie_block { atomic_t cpuflags; /* 0x0000 */ __u32 : 1; /* 0x0004 */ __u32 prefix : 18; __u32 : 1; __u32 prefix : 19; __u32 ibc : 12; __u8 reserved08[4]; /* 0x0008 */ #define PROG_IN_SIE (1<<0) Loading arch/s390/kvm/dat.h +5 −0 Original line number Diff line number Diff line Loading @@ -104,6 +104,11 @@ union pte { } tok; }; #define _SEGMENT_FR_MASK (_SEGMENT_MASK >> PAGE_SHIFT) #define _REGION3_FR_MASK (_REGION3_MASK >> PAGE_SHIFT) #define _PAGES_PER_SEGMENT _PAGE_ENTRIES #define _PAGES_PER_REGION3 (_PAGES_PER_SEGMENT * _CRST_ENTRIES) /* Soft dirty, needed as macro for atomic operations on ptes */ #define _PAGE_SD 0x002 Loading arch/s390/kvm/faultin.c +1 −1 Original line number Diff line number Diff line Loading @@ -109,7 +109,7 @@ int kvm_s390_faultin_gfn(struct kvm_vcpu *vcpu, struct kvm *kvm, struct guest_fa scoped_guard(read_lock, &kvm->mmu_lock) { if (!mmu_invalidate_retry_gfn(kvm, inv_seq, f->gfn)) { f->valid = true; rc = gmap_link(mc, kvm->arch.gmap, f); rc = gmap_link(mc, kvm->arch.gmap, f, slot); kvm_release_faultin_page(kvm, f->page, !!rc, f->write_attempt); f->page = NULL; } Loading Loading
Documentation/virt/kvm/api.rst +8 −0 Original line number Diff line number Diff line Loading @@ -9438,6 +9438,14 @@ KVM exits with the register state of either the L1 or L2 guest depending on which executed at the time of an exit. Userspace must take care to differentiate between these cases. 8.47 KVM_CAP_S390_VSIE_ESAMODE ------------------------------ :Architectures: s390 The presence of this capability indicates that the nested KVM guest can start in ESA mode. 9. Known KVM API problems ========================= Loading
arch/s390/include/asm/kvm_host.h +1 −0 Original line number Diff line number Diff line Loading @@ -656,6 +656,7 @@ struct kvm_arch { int user_stsi; int user_instr0; int user_operexec; int allow_vsie_esamode; struct s390_io_adapter *adapters[MAX_S390_IO_ADAPTERS]; wait_queue_head_t ipte_wq; int ipte_lock_count; Loading
arch/s390/include/asm/kvm_host_types.h +1 −2 Original line number Diff line number Diff line Loading @@ -137,8 +137,7 @@ struct mcck_volatile_info { struct kvm_s390_sie_block { atomic_t cpuflags; /* 0x0000 */ __u32 : 1; /* 0x0004 */ __u32 prefix : 18; __u32 : 1; __u32 prefix : 19; __u32 ibc : 12; __u8 reserved08[4]; /* 0x0008 */ #define PROG_IN_SIE (1<<0) Loading
arch/s390/kvm/dat.h +5 −0 Original line number Diff line number Diff line Loading @@ -104,6 +104,11 @@ union pte { } tok; }; #define _SEGMENT_FR_MASK (_SEGMENT_MASK >> PAGE_SHIFT) #define _REGION3_FR_MASK (_REGION3_MASK >> PAGE_SHIFT) #define _PAGES_PER_SEGMENT _PAGE_ENTRIES #define _PAGES_PER_REGION3 (_PAGES_PER_SEGMENT * _CRST_ENTRIES) /* Soft dirty, needed as macro for atomic operations on ptes */ #define _PAGE_SD 0x002 Loading
arch/s390/kvm/faultin.c +1 −1 Original line number Diff line number Diff line Loading @@ -109,7 +109,7 @@ int kvm_s390_faultin_gfn(struct kvm_vcpu *vcpu, struct kvm *kvm, struct guest_fa scoped_guard(read_lock, &kvm->mmu_lock) { if (!mmu_invalidate_retry_gfn(kvm, inv_seq, f->gfn)) { f->valid = true; rc = gmap_link(mc, kvm->arch.gmap, f); rc = gmap_link(mc, kvm->arch.gmap, f, slot); kvm_release_faultin_page(kvm, f->page, !!rc, f->write_attempt); f->page = NULL; } Loading