changeset e2716d523716 in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=e2716d523716
description:
dev: Correctly clear interrupts in VirtIO PCI
Correctly clear the PCI interrupt belonging to a VirtIO device when
the ISR register is read.
diffstat:
src/dev/virtio/pci.cc | 7 +++++--
1 files changed, 5 insertions(+), 2 deletions(-)
diffs (17 lines):
diff -r d59e40b074c6 -r e2716d523716 src/dev/virtio/pci.cc
--- a/src/dev/virtio/pci.cc Tue Feb 03 14:25:43 2015 -0500
+++ b/src/dev/virtio/pci.cc Tue Feb 03 14:25:47 2015 -0500
@@ -123,8 +123,11 @@
case OFF_ISR_STATUS: {
DPRINTF(VIOPci, " ISR_STATUS\n");
assert(size == sizeof(uint8_t));
- uint8_t isr_status(interruptDeliveryPending ? 1 : 0);
- interruptDeliveryPending = false;
+ const uint8_t isr_status(interruptDeliveryPending ? 1 : 0);
+ if (interruptDeliveryPending) {
+ interruptDeliveryPending = false;
+ intrClear();
+ }
pkt->set<uint8_t>(isr_status);
} break;
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev