• Radim Krcmar's avatar
    kvm: x86: skip populating logical dest map if apic is not sw enabled · b14c876b
    Radim Krcmar authored
    recalculate_apic_map does not santize ldr and it's possible that
    multiple bits are set. In that case, a previous valid entry
    can potentially be overwritten by an invalid one.
    
    This condition is hit when booting a 32 bit, >8 CPU, RHEL6 guest and then
    triggering a crash to boot a kdump kernel. This is the sequence of
    events:
    1. Linux boots in bigsmp mode and enables PhysFlat, however, it still
    writes to the LDR which probably will never be used.
    2. However, when booting into kdump, the stale LDR values remain as
    they are not cleared by the guest and there isn't a apic reset.
    3. kdump boots with 1 cpu, and uses Logical Destination Mode but the
    logical map has been overwritten and points to an inactive vcpu.
    Signed-off-by: default avatarRadim Krcmar <rkrcmar@redhat.com>
    Signed-off-by: default avatarBandan Das <bsd@redhat.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    b14c876b
lapic.c 68.8 KB