Use x2apic_mode instead of x2apic_enabled() when adjusting the
destination ID during Posted Interrupt updates.  This avoids the costly
RDMSR that is hidden behind x2apic_enabled().

Reported-by: luferry <[email protected]>
Signed-off-by: Sean Christopherson <[email protected]>
---
 arch/x86/kvm/vmx/posted_intr.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/arch/x86/kvm/vmx/posted_intr.c b/arch/x86/kvm/vmx/posted_intr.c
index f02962dcc72c..4831bc44ce66 100644
--- a/arch/x86/kvm/vmx/posted_intr.c
+++ b/arch/x86/kvm/vmx/posted_intr.c
@@ -54,7 +54,7 @@ void vmx_vcpu_pi_load(struct kvm_vcpu *vcpu, int cpu)
 
                dest = cpu_physical_id(cpu);
 
-               if (x2apic_enabled())
+               if (x2apic_mode)
                        new.ndst = dest;
                else
                        new.ndst = (dest << 8) & 0xFF00;
@@ -104,7 +104,7 @@ static void __pi_post_block(struct kvm_vcpu *vcpu)
 
                dest = cpu_physical_id(vcpu->cpu);
 
-               if (x2apic_enabled())
+               if (x2apic_mode)
                        new.ndst = dest;
                else
                        new.ndst = (dest << 8) & 0xFF00;
@@ -174,7 +174,7 @@ int pi_pre_block(struct kvm_vcpu *vcpu)
                 */
                dest = cpu_physical_id(vcpu->pre_pcpu);
 
-               if (x2apic_enabled())
+               if (x2apic_mode)
                        new.ndst = dest;
                else
                        new.ndst = (dest << 8) & 0xFF00;
-- 
2.30.0.284.gd98b1dd5eaa7-goog

Reply via email to