lkml.org 
[lkml]   [2022]   [May]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.10 61/70] KVM: x86: Do not change ICR on write to APIC_SELF_IPI
    Date
    From: Paolo Bonzini <pbonzini@redhat.com>

    [ Upstream commit d22a81b304a27fca6124174a8e842e826c193466 ]

    Emulating writes to SELF_IPI with a write to ICR has an unwanted side effect:
    the value of ICR in vAPIC page gets changed. The lists SELF_IPI as write-only,
    with no associated MMIO offset, so any write should have no visible side
    effect in the vAPIC page.

    Reported-by: Chao Gao <chao.gao@intel.com>
    Reviewed-by: Sean Christopherson <seanjc@google.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    arch/x86/kvm/lapic.c | 7 +++----
    1 file changed, 3 insertions(+), 4 deletions(-)

    diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c
    index de11149e28e0..e45ebf0870b6 100644
    --- a/arch/x86/kvm/lapic.c
    +++ b/arch/x86/kvm/lapic.c
    @@ -2106,10 +2106,9 @@ int kvm_lapic_reg_write(struct kvm_lapic *apic, u32 reg, u32 val)
    break;

    case APIC_SELF_IPI:
    - if (apic_x2apic_mode(apic)) {
    - kvm_lapic_reg_write(apic, APIC_ICR,
    - APIC_DEST_SELF | (val & APIC_VECTOR_MASK));
    - } else
    + if (apic_x2apic_mode(apic))
    + kvm_apic_send_ipi(apic, APIC_DEST_SELF | (val & APIC_VECTOR_MASK), 0);
    + else
    ret = 1;
    break;
    default:
    --
    2.35.1


    \
     
     \ /
      Last update: 2022-05-10 15:57    [W:4.719 / U:0.036 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site