summaryrefslogtreecommitdiff
path: root/dev/ns_gige.cc
diff options
context:
space:
mode:
Diffstat (limited to 'dev/ns_gige.cc')
-rw-r--r--dev/ns_gige.cc7
1 files changed, 3 insertions, 4 deletions
diff --git a/dev/ns_gige.cc b/dev/ns_gige.cc
index d93e155bf..6aae7b9eb 100644
--- a/dev/ns_gige.cc
+++ b/dev/ns_gige.cc
@@ -1211,7 +1211,7 @@ NSGigE::devIntrPost(uint32_t interrupts)
if (interrupts & ISR_NOIMPL)
warn("interrupt not implemented %#x\n", interrupts);
- interrupts &= ~ISR_NOIMPL;
+ interrupts &= ISR_IMPL;
regs.isr |= interrupts;
if (interrupts & regs.imr) {
@@ -1247,7 +1247,7 @@ NSGigE::devIntrPost(uint32_t interrupts)
if ((regs.isr & regs.imr)) {
Tick when = curTick;
- if (!(regs.isr & regs.imr & ISR_NODELAY))
+ if ((regs.isr & regs.imr & ISR_NODELAY) == 0)
when += intrDelay;
cpuIntrPost(when);
}
@@ -1289,8 +1289,7 @@ NSGigE::devIntrClear(uint32_t interrupts)
postedRxOrn++;
}
- if (regs.isr & regs.imr & (ISR_SWI | ISR_RXIDLE | ISR_RXOK | ISR_RXDESC |
- ISR_TXOK | ISR_TXIDLE | ISR_TXDESC | ISR_RXORN) )
+ if (regs.isr & regs.imr & ISR_IMPL)
postedInterrupts++;
interrupts &= ~ISR_NOIMPL;