KVM: s390: add kvm reference to struct sie_page2
authorMichael Mueller <mimu@linux.ibm.com>
Thu, 31 Jan 2019 08:52:41 +0000 (09:52 +0100)
committerChristian Borntraeger <borntraeger@de.ibm.com>
Tue, 5 Feb 2019 13:29:23 +0000 (14:29 +0100)
Adding the kvm reference to struct sie_page2 will allow to
determine the kvm a given gisa belongs to:

  container_of(gisa, struct sie_page2, gisa)->kvm

This functionality will be required to process a gisa in
gib alert interruption context.

Signed-off-by: Michael Mueller <mimu@linux.ibm.com>
Reviewed-by: Pierre Morel <pmorel@linux.ibm.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Halil Pasic <pasic@linux.ibm.com>
Message-Id: <20190131085247.13826-11-mimu@linux.ibm.com>
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
arch/s390/include/asm/kvm_host.h
arch/s390/kvm/kvm-s390.c

index 397af0d..7077762 100644 (file)
@@ -801,7 +801,8 @@ struct sie_page2 {
        __u64 fac_list[S390_ARCH_FAC_LIST_SIZE_U64];    /* 0x0000 */
        struct kvm_s390_crypto_cb crycb;                /* 0x0800 */
        struct kvm_s390_gisa gisa;                      /* 0x0900 */
-       u8 reserved920[0x1000 - 0x920];                 /* 0x0920 */
+       struct kvm *kvm;                                /* 0x0920 */
+       u8 reserved928[0x1000 - 0x928];                 /* 0x0928 */
 };
 
 struct kvm_s390_vsie {
index ede8917..0de062e 100644 (file)
@@ -2210,6 +2210,7 @@ int kvm_arch_init_vm(struct kvm *kvm, unsigned long type)
        if (!kvm->arch.sie_page2)
                goto out_err;
 
+       kvm->arch.sie_page2->kvm = kvm;
        kvm->arch.model.fac_list = kvm->arch.sie_page2->fac_list;
 
        for (i = 0; i < kvm_s390_fac_size(); i++) {