summaryrefslogtreecommitdiff
path: root/src/dev/i8254xGBe.cc
diff options
context:
space:
mode:
authorAli Saidi <saidi@eecs.umich.edu>2008-08-13 16:30:30 -0400
committerAli Saidi <saidi@eecs.umich.edu>2008-08-13 16:30:30 -0400
commit05954e1ba7bb35674b0d12428788998d699f25cb (patch)
tree0369697cd76738193d9f246ed31b3a22c83f6bf0 /src/dev/i8254xGBe.cc
parent91d968783ecbcbe4bcd44e10964532303b367a05 (diff)
downloadgem5-05954e1ba7bb35674b0d12428788998d699f25cb.tar.xz
More subtle fixes to how interrupts are supposed to work in the device. Fix postedInterrupts statistics.
Diffstat (limited to 'src/dev/i8254xGBe.cc')
-rw-r--r--src/dev/i8254xGBe.cc3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/dev/i8254xGBe.cc b/src/dev/i8254xGBe.cc
index 76e11b752..98040a252 100644
--- a/src/dev/i8254xGBe.cc
+++ b/src/dev/i8254xGBe.cc
@@ -588,7 +588,6 @@ IGbE::postInterrupt(IntTypes t, bool now)
if (interEvent.scheduled()) {
interEvent.deschedule();
}
- postedInterrupts++;
cpuPostInt();
} else {
Tick int_time = lastInterrupt + itr_interval;
@@ -612,6 +611,8 @@ void
IGbE::cpuPostInt()
{
+ postedInterrupts++;
+
if (!(regs.icr() & regs.imr)) {
DPRINTF(Ethernet, "Interrupt Masked. Not Posting\n");
return;