Re: Tulip eth0 on a Multia keeps hanging...

Keith Owens (kaos@ocs.com.au)
Mon, 05 Jul 1999 23:11:29 +1000


On Mon, 5 Jul 1999 14:35:04 +0200 ,
Robin Elfrink <r.elfrink@autosound.nl> wrote:
>Ever since the upgrade from 2.0.x to 2.2.x I'm having trouble with the
>network interface on my Multia's, using the Tulip-driver. _After_ an
>ftp/smb transfer _from_ the multia the interface has no network
>connection, while the file being copied did get over the line fine. It
>doesn't matter if the file is small or big. Usually an 'ifconfig eth0
>down; ifconfig eth0 up' makes ik work again.

Does "ifconfig eth0 promisc", "ifconfig eth0 -promisc" also fix the
problem? If so it is probably a MAC filter problem on the tulip. Try
this.

--- 2.2.10-ac8/drivers/net/tulip.c Wed Jan 20 08:18:45 1999
+++ linux/drivers/net/tulip.c Mon Jul 5 09:39:24 1999
@@ -2698,8 +2698,8 @@
/* 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);

-
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/