• 黄乐's avatar
    KVM: x86: Fix uninitialized eoi_exit_bitmap usage in vcpu_load_eoi_exitmap() · c5adbb3a
    黄乐 authored
    In vcpu_load_eoi_exitmap(), currently the eoi_exit_bitmap[4] array is
    initialized only when Hyper-V context is available, in other path it is
    just passed to kvm_x86_ops.load_eoi_exitmap() directly from on the stack,
    which would cause unexpected interrupt delivery/handling issues, e.g. an
    *old* linux kernel that relies on PIT to do clock calibration on KVM might
    randomly fail to boot.
    
    Fix it by passing ioapic_handled_vectors to load_eoi_exitmap() when Hyper-V
    context is not available.
    
    Fixes: f2bc14b6 ("KVM: x86: hyper-v: Prepare to meet unallocated Hyper-V context")
    Cc: stable@vger.kernel.org
    Reviewed-by: default avatarVitaly Kuznetsov <vkuznets@redhat.com>
    Signed-off-by: default avatarHuang Le <huangle1@jd.com>
    Message-Id: <62115b277dab49ea97da5633f8522daf@jd.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    c5adbb3a
x86.c 332 KB