s390: kvm: Cpu model support for msa6, msa7 and msa8

msa6 and msa7 require no changes.
msa8 adds kma instruction and feature area.

Signed-off-by: Jason J. Herne <jjherne@linux.vnet.ibm.com>
Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
This commit is contained in:
Jason J. Herne 2017-03-20 09:57:42 -04:00 committed by Christian Borntraeger
parent 0850e9219b
commit e000b8e096
5 changed files with 11 additions and 3 deletions

View File

@ -140,7 +140,8 @@ struct kvm_s390_vm_cpu_subfunc {
u8 kmo[16]; # valid with Message-Security-Assist-Extension 4 u8 kmo[16]; # valid with Message-Security-Assist-Extension 4
u8 pcc[16]; # valid with Message-Security-Assist-Extension 4 u8 pcc[16]; # valid with Message-Security-Assist-Extension 4
u8 ppno[16]; # valid with Message-Security-Assist-Extension 5 u8 ppno[16]; # valid with Message-Security-Assist-Extension 5
u8 reserved[1824]; # reserved for future instructions u8 kma[16]; # valid with Message-Security-Assist-Extension 8
u8 reserved[1808]; # reserved for future instructions
}; };
Parameters: address of a buffer to load the subfunction blocks from. Parameters: address of a buffer to load the subfunction blocks from.

View File

@ -141,7 +141,8 @@ struct kvm_s390_vm_cpu_subfunc {
__u8 kmo[16]; /* with MSA4 */ __u8 kmo[16]; /* with MSA4 */
__u8 pcc[16]; /* with MSA4 */ __u8 pcc[16]; /* with MSA4 */
__u8 ppno[16]; /* with MSA5 */ __u8 ppno[16]; /* with MSA5 */
__u8 reserved[1824]; __u8 kma[16]; /* with MSA8 */
__u8 reserved[1808];
}; };
/* kvm attributes for crypto */ /* kvm attributes for crypto */

View File

@ -276,6 +276,10 @@ static void kvm_s390_cpu_feat_init(void)
__cpacf_query(CPACF_PPNO, (cpacf_mask_t *) __cpacf_query(CPACF_PPNO, (cpacf_mask_t *)
kvm_s390_available_subfunc.ppno); kvm_s390_available_subfunc.ppno);
if (test_facility(146)) /* MSA8 */
__cpacf_query(CPACF_KMA, (cpacf_mask_t *)
kvm_s390_available_subfunc.kma);
if (MACHINE_HAS_ESOP) if (MACHINE_HAS_ESOP)
allow_cpu_feat(KVM_S390_VM_CPU_FEAT_ESOP); allow_cpu_feat(KVM_S390_VM_CPU_FEAT_ESOP);
/* /*

View File

@ -82,6 +82,7 @@ static struct facility_def facility_defs[] = {
78, /* enhanced-DAT 2 */ 78, /* enhanced-DAT 2 */
130, /* instruction-execution-protection */ 130, /* instruction-execution-protection */
131, /* enhanced-SOP 2 and side-effect */ 131, /* enhanced-SOP 2 and side-effect */
146, /* msa extension 8 */
-1 /* END */ -1 /* END */
} }
}, },

View File

@ -131,7 +131,8 @@ struct kvm_s390_vm_cpu_subfunc {
__u8 kmo[16]; /* with MSA4 */ __u8 kmo[16]; /* with MSA4 */
__u8 pcc[16]; /* with MSA4 */ __u8 pcc[16]; /* with MSA4 */
__u8 ppno[16]; /* with MSA5 */ __u8 ppno[16]; /* with MSA5 */
__u8 reserved[1824]; __u8 kma[16]; /* with MSA8 */
__u8 reserved[1808];
}; };
/* kvm attributes for crypto */ /* kvm attributes for crypto */