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