Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ca3f257a authored by Jan Kiszka's avatar Jan Kiszka Committed by Paolo Bonzini
Browse files

KVM: nVMX: Support direct APIC access from L2



It's a pathological case, but still a valid one: If L1 disables APIC
virtualization and also allows L2 to directly write to the APIC page, we
have to forcibly enable APIC virtualization while in L2 if the in-kernel
APIC is in use.

This allows to run the direct interrupt test case in the vmx unit test
without x2APIC.

Signed-off-by: default avatarJan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
parent 9357d939
Loading
Loading
Loading
Loading
+5 −0
Original line number Original line Diff line number Diff line
@@ -7763,6 +7763,11 @@ static void prepare_vmcs02(struct kvm_vcpu *vcpu, struct vmcs12 *vmcs12)
			else
			else
				vmcs_write64(APIC_ACCESS_ADDR,
				vmcs_write64(APIC_ACCESS_ADDR,
				  page_to_phys(vmx->nested.apic_access_page));
				  page_to_phys(vmx->nested.apic_access_page));
		} else if (vm_need_virtualize_apic_accesses(vmx->vcpu.kvm)) {
			exec_control |=
				SECONDARY_EXEC_VIRTUALIZE_APIC_ACCESSES;
			vmcs_write64(APIC_ACCESS_ADDR,
				page_to_phys(vcpu->kvm->arch.apic_access_page));
		}
		}


		vmcs_write32(SECONDARY_VM_EXEC_CONTROL, exec_control);
		vmcs_write32(SECONDARY_VM_EXEC_CONTROL, exec_control);