Changeset View
Changeset View
Standalone View
Standalone View
sys/amd64/vmm/intel/vmx.c
Show First 20 Lines • Show All 689 Lines • ▼ Show 20 Lines | if (virtual_interrupt_delivery) { | ||||
/* | /* | ||||
* Check for Posted Interrupts only if Virtual Interrupt | * Check for Posted Interrupts only if Virtual Interrupt | ||||
* Delivery is enabled. | * Delivery is enabled. | ||||
*/ | */ | ||||
error = vmx_set_ctlreg(MSR_VMX_PINBASED_CTLS, | error = vmx_set_ctlreg(MSR_VMX_PINBASED_CTLS, | ||||
MSR_VMX_TRUE_PINBASED_CTLS, PINBASED_POSTED_INTERRUPT, 0, | MSR_VMX_TRUE_PINBASED_CTLS, PINBASED_POSTED_INTERRUPT, 0, | ||||
&tmp); | &tmp); | ||||
if (error == 0) { | if (error == 0) { | ||||
pirvec = lapic_ipi_alloc(&IDTVEC(justreturn)); | pirvec = lapic_ipi_alloc(pti ? &IDTVEC(justreturn1_pti) : | ||||
&IDTVEC(justreturn)); | |||||
if (pirvec < 0) { | if (pirvec < 0) { | ||||
if (bootverbose) { | if (bootverbose) { | ||||
printf("vmx_init: unable to allocate " | printf("vmx_init: unable to allocate " | ||||
"posted interrupt vector\n"); | "posted interrupt vector\n"); | ||||
} | } | ||||
} else { | } else { | ||||
posted_interrupts = 1; | posted_interrupts = 1; | ||||
TUNABLE_INT_FETCH("hw.vmm.vmx.use_apic_pir", | TUNABLE_INT_FETCH("hw.vmm.vmx.use_apic_pir", | ||||
▲ Show 20 Lines • Show All 2,756 Lines • Show Last 20 Lines |