aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390
diff options
context:
space:
mode:
authorChristian Borntraeger <borntraeger@de.ibm.com>2016-09-08 13:41:08 +0200
committerChristian Borntraeger <borntraeger@de.ibm.com>2016-09-08 13:41:08 +0200
commitb0eb91ae630a4f2771790e306bb4df323127a397 (patch)
tree4f7b6248d772433862d711fd0388e7ec45386ff4 /arch/s390
parentKVM: s390: Use memdup_user() rather than duplicating code (diff)
parentKVM: s390: generate facility mask from readable list (diff)
downloadlinux-dev-b0eb91ae630a4f2771790e306bb4df323127a397.tar.xz
linux-dev-b0eb91ae630a4f2771790e306bb4df323127a397.zip
Merge remote-tracking branch 'kvms390/s390forkvm' into kvms390next
Diffstat (limited to 'arch/s390')
-rw-r--r--arch/s390/include/asm/facilities_src.h24
-rw-r--r--arch/s390/kvm/kvm-s390.c5
2 files changed, 25 insertions, 4 deletions
diff --git a/arch/s390/include/asm/facilities_src.h b/arch/s390/include/asm/facilities_src.h
index 4917728e5828..3b758f66e48b 100644
--- a/arch/s390/include/asm/facilities_src.h
+++ b/arch/s390/include/asm/facilities_src.h
@@ -55,4 +55,28 @@ static struct facility_def facility_defs[] = {
-1 /* END */
}
},
+ {
+ .name = "FACILITIES_KVM",
+ .bits = (int[]){
+ 0, /* N3 instructions */
+ 1, /* z/Arch mode installed */
+ 2, /* z/Arch mode active */
+ 3, /* DAT-enhancement */
+ 4, /* idte segment table */
+ 5, /* idte region table */
+ 6, /* ASN-and-LX reuse */
+ 7, /* stfle */
+ 8, /* enhanced-DAT 1 */
+ 9, /* sense-running-status */
+ 10, /* conditional sske */
+ 13, /* ipte-range */
+ 14, /* nonquiescing key-setting */
+ 73, /* transactional execution */
+ 75, /* access-exception-fetch/store indication */
+ 76, /* msa extension 3 */
+ 77, /* msa extension 4 */
+ 78, /* enhanced-DAT 2 */
+ -1 /* END */
+ }
+ },
};
diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c
index 3a628eb3156f..ac6c056df4b9 100644
--- a/arch/s390/kvm/kvm-s390.c
+++ b/arch/s390/kvm/kvm-s390.c
@@ -132,10 +132,7 @@ 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,
- 0x005e000000000000UL,
-};
+unsigned long kvm_s390_fac_list_mask[16] = { FACILITIES_KVM };
unsigned long kvm_s390_fac_list_mask_size(void)
{