diff options
Diffstat (limited to 'virt/kvm/ioapic.c')
-rw-r--r-- | virt/kvm/ioapic.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/virt/kvm/ioapic.c b/virt/kvm/ioapic.c index 2a5667173995..0532fa68f5d1 100644 --- a/virt/kvm/ioapic.c +++ b/virt/kvm/ioapic.c | |||
@@ -164,7 +164,9 @@ static int ioapic_deliver(struct kvm_ioapic *ioapic, int irq) | |||
164 | /* Always delivery PIT interrupt to vcpu 0 */ | 164 | /* Always delivery PIT interrupt to vcpu 0 */ |
165 | if (irq == 0) { | 165 | if (irq == 0) { |
166 | irqe.dest_mode = 0; /* Physical mode. */ | 166 | irqe.dest_mode = 0; /* Physical mode. */ |
167 | irqe.dest_id = ioapic->kvm->vcpus[0]->vcpu_id; | 167 | /* need to read apic_id from apic regiest since |
168 | * it can be rewritten */ | ||
169 | irqe.dest_id = ioapic->kvm->bsp_vcpu->vcpu_id; | ||
168 | } | 170 | } |
169 | #endif | 171 | #endif |
170 | return kvm_irq_delivery_to_apic(ioapic->kvm, NULL, &irqe); | 172 | return kvm_irq_delivery_to_apic(ioapic->kvm, NULL, &irqe); |