Subject: Re: port-macppc/28870: Tulip driver generating "tlp0: receive ring overrun" messages, severe network slowdown
To: None <pcronin@loyola.edu>
From: Nozomu Ando <nand@mac.com>
List: netbsd-bugs
Date: 03/03/2005 12:59:24
I had the problem here too, on a PowerMac G3/DT with a PCI NIC (Realtek
8169S).
It seems to work fine here now with the following patch.
Nozomu Ando
---
Index: extintr.c
===================================================================
RCS file: /cvsroot/src/sys/arch/macppc/macppc/extintr.c,v
retrieving revision 1.50
diff -u -r1.50 extintr.c
--- extintr.c 21 Jan 2005 03:22:13 -0000 1.50
+++ extintr.c 3 Mar 2005 03:53:03 -0000
@@ -199,18 +199,20 @@
gc_read_irq()
{
uint32_t rv = 0;
+ uint32_t int_state;
uint32_t events, e;
uint32_t levels;
/* Get the internal interrupts */
- events = in32rb(INT_STATE_REG_L) & ~intr_level_mask;
+ int_state = in32rb(INT_STATE_REG_L);
+ events = int_state & ~intr_level_mask;
/* Get the enabled external interrupts */
levels = in32rb(INT_LEVEL_REG_L) & in32rb(INT_ENABLE_REG_L);
events = events | (levels & intr_level_mask);
- /* Clear any interrupts that we've read (and all external ints)
*/
- out32rb(INT_CLEAR_REG_L, events | intr_level_mask);
+ /* Clear any interrupts that we've read */
+ out32rb(INT_CLEAR_REG_L, events | int_state);
while (events) {
e = 31 - cntlzw(events);
rv |= 1 << virq[e];