KVM: s390: instruction-execution-protection support
The new Instruction Execution Protection needs to be enabled before the guest can use it. Therefore we pass the IEP facility bit to the guest and enable IEP interpretation. Signed-off-by: Janosch Frank <frankja@linux.vnet.ibm.com> Reviewed-by: David Hildenbrand <dahi@linux.vnet.ibm.com> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
This commit is contained in:
parent
a679c547d1
commit
cd1836f583
@ -1938,6 +1938,8 @@ int kvm_arch_vcpu_setup(struct kvm_vcpu *vcpu)
|
||||
|
||||
if (test_kvm_facility(vcpu->kvm, 8) && sclp.has_pfmfi)
|
||||
vcpu->arch.sie_block->ecb2 |= 0x08;
|
||||
if (test_kvm_facility(vcpu->kvm, 130))
|
||||
vcpu->arch.sie_block->ecb2 |= 0x20;
|
||||
vcpu->arch.sie_block->eca = 0x1002000U;
|
||||
if (sclp.has_cei)
|
||||
vcpu->arch.sie_block->eca |= 0x80000000U;
|
||||
|
@ -324,6 +324,9 @@ static int shadow_scb(struct kvm_vcpu *vcpu, struct vsie_page *vsie_page)
|
||||
/* Run-time-Instrumentation */
|
||||
if (test_kvm_facility(vcpu->kvm, 64))
|
||||
scb_s->ecb3 |= scb_o->ecb3 & 0x01U;
|
||||
/* Instruction Execution Prevention */
|
||||
if (test_kvm_facility(vcpu->kvm, 130))
|
||||
scb_s->ecb2 |= scb_o->ecb2 & 0x20U;
|
||||
if (test_kvm_cpu_feat(vcpu->kvm, KVM_S390_VM_CPU_FEAT_SIIF))
|
||||
scb_s->eca |= scb_o->eca & 0x00000001U;
|
||||
if (test_kvm_cpu_feat(vcpu->kvm, KVM_S390_VM_CPU_FEAT_IB))
|
||||
|
@ -80,6 +80,7 @@ static struct facility_def facility_defs[] = {
|
||||
76, /* msa extension 3 */
|
||||
77, /* msa extension 4 */
|
||||
78, /* enhanced-DAT 2 */
|
||||
130, /* instruction-execution-protection */
|
||||
131, /* enhanced-SOP 2 and side-effect */
|
||||
-1 /* END */
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user