KVM: s390: vsie: add module parameter "nested"
authorDavid Hildenbrand <dahi@linux.vnet.ibm.com>
Tue, 2 Feb 2016 14:41:22 +0000 (15:41 +0100)
committerChristian Borntraeger <borntraeger@de.ibm.com>
Tue, 21 Jun 2016 07:43:47 +0000 (09:43 +0200)
Let's be careful first and allow nested virtualization only if enabled
by the system administrator. In addition, user space still has to
explicitly enable it via SCLP features for it to work.

Acked-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: David Hildenbrand <dahi@linux.vnet.ibm.com>
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
arch/s390/kvm/kvm-s390.c

index 31cf22f7d846bd7a2572c2c2f46d5027de06c263..03eeeb0ded2470a3d9ea0f6df82f6308266a3c83 100644 (file)
@@ -125,6 +125,11 @@ struct kvm_stats_debugfs_item debugfs_entries[] = {
        { NULL }
 };
 
+/* allow nested virtualization in KVM (if enabled by user space) */
+static int nested;
+module_param(nested, int, S_IRUGO);
+MODULE_PARM_DESC(nested, "Nested virtualization support");
+
 /* upper facilities limit for kvm */
 unsigned long kvm_s390_fac_list_mask[16] = {
        0xffe6000000000000UL,
@@ -264,7 +269,7 @@ static void kvm_s390_cpu_feat_init(void)
         * 64bit SCAO (SCA passthrough) and IDTE (for gmap_shadow unshadowing).
         */
        if (!sclp.has_sief2 || !MACHINE_HAS_ESOP || !sclp.has_64bscao ||
-           !test_facility(3))
+           !test_facility(3) || !nested)
                return;
        allow_cpu_feat(KVM_S390_VM_CPU_FEAT_SIEF2);
        if (sclp.has_64bscao)