lkml.org 
[lkml]   [1999]   [Jun]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
SubjectRe: PROBLEM: Losing network connectivity with 2.2.10
Date
On Thu, 17 Jun 1999 14:16:09 +0100 (GMT), 
Chris Evans <chris@ferret.lmh.ox.ac.uk> wrote:
>Oh dear, we don't still suffer from this bug do we?
>
>Maybe it's worth looking at what the tulip.c and de4x5.c do differently

There is one definite problem with tulip.c that tends to show up under
heavy load. The MAC filter is incorrectly set so the card can send but
not receive.

"The ownership bit of the first descriptor of the frame should be set
after all subsequent descriptors belonging to the same frame have been
set. This avoids a possible race condition between the 21143 fetching a
descriptor and the driver setting an ownership bit."


Index: linux/drivers/net/tulip.c
--- linux-2.2.10/drivers/net/tulip.c Fri, 05 Feb 1999 09:47:48 +1100 keith (linux-2.2/m/b/31_tulip.c 1.1 644)
+++ linux/drivers/net/tulip.c Fri, 18 Jun 1999 00:14:39 +1000 keith (linux-2.2/m/b/31_tulip.c 1.3 644)
@@ -2698,7 +2698,7 @@
/* Same setup recently queued, we need not add it. */
} else {
unsigned long flags;
- unsigned int entry;
+ unsigned int entry, dummy = 0;

save_flags(flags); cli();
entry = tp->cur_tx++ % TX_RING_SIZE;
@@ -2709,7 +2709,8 @@
tp->tx_ring[entry].length =
(entry == TX_RING_SIZE-1) ? 0x02000000 : 0;
tp->tx_ring[entry].buffer1 = 0;
- tp->tx_ring[entry].status = 0x80000000;
+ /* race with chip, set DescOwned later */
+ dummy = entry;
entry = tp->cur_tx++ % TX_RING_SIZE;
}

@@ -2724,6 +2725,8 @@
dev->tbusy = 1;
tp->tx_full = 1;
}
+ if (dummy >= 0)
+ tp->tx_ring[dummy].status = DescOwned;
restore_flags(flags);
/* Trigger an immediate transmit demand. */
outl(0, ioaddr + CSR1);
There are also other problems that I see on a Xircom RBEM56G pcmcia
(2114x based), to do with changing CSR6 while the transmitter and/or
receiver are running. I plan to send all my updates to Donald Becker
later this month, he is away at the moment.


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:52    [from the cache]
©2003-2011 Jasper Spaans