summaryrefslogtreecommitdiffstats
path: root/sys/dev/nge
diff options
context:
space:
mode:
authorwpaul <wpaul@FreeBSD.org>2001-07-16 16:35:09 +0000
committerwpaul <wpaul@FreeBSD.org>2001-07-16 16:35:09 +0000
commit77cb541e32e91409233e4fa46f1a0436075b84f1 (patch)
tree754d98a23b8e9a61e1cd4a9fa09c383bd3f3c08d /sys/dev/nge
parentb71650db7499309b0018e30e5d99e8ffe7d9caa7 (diff)
downloadFreeBSD-src-77cb541e32e91409233e4fa46f1a0436075b84f1.zip
FreeBSD-src-77cb541e32e91409233e4fa46f1a0436075b84f1.tar.gz
Change the interrupt handler a bit so that we call the nge_rxeof() handler
when we get an RX_ERR interrupt rather than the nge_rxeoc() handler. The rxeoc (end of channel) handler attempts to reinitialize the whole NIC, which we don't want to do if we only received a bad packet.
Diffstat (limited to 'sys/dev/nge')
-rw-r--r--sys/dev/nge/if_nge.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/sys/dev/nge/if_nge.c b/sys/dev/nge/if_nge.c
index 4900fdf..db89ce2 100644
--- a/sys/dev/nge/if_nge.c
+++ b/sys/dev/nge/if_nge.c
@@ -1499,13 +1499,12 @@ static void nge_intr(arg)
nge_txeof(sc);
if ((status & NGE_ISR_RX_DESC_OK) ||
+ (status & NGE_ISR_RX_ERR) ||
(status & NGE_ISR_RX_OK))
nge_rxeof(sc);
- if ((status & NGE_ISR_RX_ERR) ||
- (status & NGE_ISR_RX_OFLOW)) {
+ if ((status & NGE_ISR_RX_OFLOW))
nge_rxeoc(sc);
- }
if (status & NGE_ISR_SYSERR) {
nge_reset(sc);
OpenPOWER on IntegriCloud