diff options
author | Li Qiang <liq3ea@163.com> | 2019-06-24 08:16:35 -0700 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2019-07-05 22:16:46 +0200 |
commit | d15d3d573aa16ac4748d7c0291e582ed9d007485 (patch) | |
tree | 782b3c0cd2e9c251e2bbc751d5eabfcf4b72a859 /hw | |
parent | 9a4bb8391fda2312803d44664575a662b9be7189 (diff) |
ioapic: clear irq_eoi when updating the ioapic redirect table entry
irq_eoi is used to count the number of irq injected during eoi
broadcast. It should be set to 0 when updating the ioapic's redirect
table entry.
Suggested-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Li Qiang <liq3ea@163.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Message-Id: <20190624151635.22494-1-liq3ea@163.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'hw')
-rw-r--r-- | hw/intc/ioapic.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/hw/intc/ioapic.c b/hw/intc/ioapic.c index 7074489fdf..db9e518602 100644 --- a/hw/intc/ioapic.c +++ b/hw/intc/ioapic.c @@ -380,6 +380,7 @@ ioapic_mem_write(void *opaque, hwaddr addr, uint64_t val, /* restore RO bits */ s->ioredtbl[index] &= IOAPIC_RW_BITS; s->ioredtbl[index] |= ro_bits; + s->irq_eoi[index] = 0; ioapic_fix_edge_remote_irr(&s->ioredtbl[index]); ioapic_service(s); } |