From: Roger Pau Monné Date: Mon, 14 Mar 2022 09:29:24 +0000 (+0100) Subject: x86/vmx: remove dead code to create domains without a vLAPIC X-Git-Tag: archive/raspbian/4.17.0-1+rpi1^2~33^2~838 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=3f809886988767fff46f440f4fc6d252fb586ace;p=xen.git x86/vmx: remove dead code to create domains without a vLAPIC After the removal of PVHv1 it's no longer supported to create a domain using hardware virtualization extensions and without a local APIC: PVHv2 mandates domains to always have a LAPIC. Remove some stale code in VMCS construction and related helpers that catered for that use-case. No functional change. Signed-off-by: Roger Pau Monné Reviewed-by: Jan Beulich Reviewed-by: Kevin Tian --- diff --git a/xen/arch/x86/hvm/vmx/vmcs.c b/xen/arch/x86/hvm/vmx/vmcs.c index e1e1fa14e6..56fed2db03 100644 --- a/xen/arch/x86/hvm/vmx/vmcs.c +++ b/xen/arch/x86/hvm/vmx/vmcs.c @@ -1123,20 +1123,6 @@ static int construct_vmcs(struct vcpu *v) /* Do not enable Monitor Trap Flag unless start single step debug */ v->arch.hvm.vmx.exec_control &= ~CPU_BASED_MONITOR_TRAP_FLAG; - if ( !has_vlapic(d) ) - { - /* Disable virtual apics, TPR */ - v->arch.hvm.vmx.secondary_exec_control &= - ~(SECONDARY_EXEC_VIRTUALIZE_APIC_ACCESSES - | SECONDARY_EXEC_APIC_REGISTER_VIRT - | SECONDARY_EXEC_VIRTUAL_INTR_DELIVERY); - v->arch.hvm.vmx.exec_control &= ~CPU_BASED_TPR_SHADOW; - - /* In turn, disable posted interrupts. */ - __vmwrite(PIN_BASED_VM_EXEC_CONTROL, - vmx_pin_based_exec_control & ~PIN_BASED_POSTED_INTERRUPT); - } - vmx_update_cpu_exec_control(v); __vmwrite(VM_EXIT_CONTROLS, vmexit_ctl); diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c index c075370f64..af9ee7cebb 100644 --- a/xen/arch/x86/hvm/vmx/vmx.c +++ b/xen/arch/x86/hvm/vmx/vmx.c @@ -421,7 +421,7 @@ static void cf_check domain_creation_finished(struct domain *d) gfn_t gfn = gaddr_to_gfn(APIC_DEFAULT_PHYS_BASE); bool ipat; - if ( !has_vlapic(d) || mfn_eq(apic_access_mfn, INVALID_MFN) ) + if ( mfn_eq(apic_access_mfn, INVALID_MFN) ) return; ASSERT(epte_get_entry_emt(d, gfn, apic_access_mfn, 0, &ipat, @@ -3328,7 +3328,7 @@ static void vmx_install_vlapic_mapping(struct vcpu *v) { paddr_t virt_page_ma, apic_page_ma; - if ( !has_vlapic(v->domain) || mfn_eq(apic_access_mfn, INVALID_MFN) ) + if ( mfn_eq(apic_access_mfn, INVALID_MFN) ) return; ASSERT(cpu_has_vmx_virtualize_apic_accesses);