diff options
| author | Li RongQing <lirongqing@baidu.com> | 2026-05-28 06:16:24 +0300 |
|---|---|---|
| committer | Sean Christopherson <seanjc@google.com> | 2026-05-30 01:52:31 +0300 |
| commit | 555aa0e83b16b55f47f1940f89ae30595de4f414 (patch) | |
| tree | 167d5f64063a48cafb037a7feb0c695628a828ef /scripts/objdiff | |
| parent | c3647e582e1563d27896c62686d88db76c6cd3a6 (diff) | |
| download | linux-555aa0e83b16b55f47f1940f89ae30595de4f414.tar.xz | |
KVM: x86: ioapic: Use old_dest_mode consistently in ioapic_write_indirect()
When reconstructing a temporary IRQ state from the historical/old IOAPIC
redirection table configuration in ioapic_write_indirect(), the code
previously assigned 'irq.dest_id' from 'old_dest_id', but incorrectly
queried the live/new 'e->fields.dest_mode' to populate 'irq.dest_mode'.
Mixing the old destination ID with the new destination mode creates an
inconsistent, hybrid IRQ state. This discrepancy leads to an incorrect
vCPU bitmap calculation via kvm_bitmap_or_dest_vcpus(), causing subsequent
interrupt routing updates (such as RTC interrupt handling) to target the
wrong set of virtual processors if both fields were modified simultaneously.
Fix this by using 'old_dest_mode' consistently alongside 'old_dest_id' to
ensure the historical IRQ structure is reconstructed accurately.
Fixes: c96001c5702e ("KVM: X86: Use APIC_DEST_* macros properly in kvm_lapic_irq.dest_mode")
Signed-off-by: Li RongQing <lirongqing@baidu.com>
Link: https://patch.msgid.link/20260528031624.1929-1-lirongqing@baidu.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
Diffstat (limited to 'scripts/objdiff')
0 files changed, 0 insertions, 0 deletions
