diff options
author | wpaul <wpaul@FreeBSD.org> | 2001-09-19 21:39:26 +0000 |
---|---|---|
committer | wpaul <wpaul@FreeBSD.org> | 2001-09-19 21:39:26 +0000 |
commit | e11a32487cd685fb304e41fce511f1bc61642471 (patch) | |
tree | 8d1c252aafbce6092ebce7275f2131237e647720 | |
parent | dcf7dde14532f48c9adcdcea0805c4c998e25902 (diff) | |
download | FreeBSD-src-e11a32487cd685fb304e41fce511f1bc61642471.zip FreeBSD-src-e11a32487cd685fb304e41fce511f1bc61642471.tar.gz |
Handle the RX FIFO overflow condition with the rxeof handler instead
of the rxeoc handler for now. The rxeoc handler will reset the link,
and the NatSemi chip's RX FIFO will overflow on a 32-bit bus once you
start hitting it with 500Mbps or more of traffic.
Also increase the size of the RX ring to 128 descriptors (was 64).
-rw-r--r-- | sys/dev/nge/if_nge.c | 5 | ||||
-rw-r--r-- | sys/dev/nge/if_ngereg.h | 2 |
2 files changed, 4 insertions, 3 deletions
diff --git a/sys/dev/nge/if_nge.c b/sys/dev/nge/if_nge.c index be42d04..99ff20c 100644 --- a/sys/dev/nge/if_nge.c +++ b/sys/dev/nge/if_nge.c @@ -1495,12 +1495,13 @@ static void nge_intr(arg) if ((status & NGE_ISR_RX_DESC_OK) || (status & NGE_ISR_RX_ERR) || + (status & NGE_ISR_RX_OFLOW) || (status & NGE_ISR_RX_OK)) nge_rxeof(sc); - +#ifdef notdef if ((status & NGE_ISR_RX_OFLOW)) nge_rxeoc(sc); - +#endif if (status & NGE_ISR_SYSERR) { nge_reset(sc); ifp->if_flags &= ~IFF_RUNNING; diff --git a/sys/dev/nge/if_ngereg.h b/sys/dev/nge/if_ngereg.h index 575ae2fe..f10590e 100644 --- a/sys/dev/nge/if_ngereg.h +++ b/sys/dev/nge/if_ngereg.h @@ -562,7 +562,7 @@ struct nge_desc_32 { #define NGE_RXEXTSTS_UDPPKT 0x00200000 #define NGE_RXEXTSTS_UDPCSUMERR 0x00400000 -#define NGE_RX_LIST_CNT 64 +#define NGE_RX_LIST_CNT 128 #define NGE_TX_LIST_CNT 128 struct nge_list_data { |