dell poweredge 1950 : not rebooting under 6.1 (sometimes) +
bce0 issues
John Baldwin
jhb at freebsd.org
Tue Jul 18 19:00:37 UTC 2006
On Tuesday 18 July 2006 07:25, Olivier Mueller wrote:
> On Wed, 2006-07-12 at 11:44 +0200, Olivier Mueller wrote:
> > Any guess about what I should try? I recompiled the kernel
> > with & without apci support or some different options, but it didn't
> > helped yet.
>
> Another problem: I wanted to transfer large amount of data (10GB) using
> rsync via the network, and just after 60MB, the network card won't
> answser anymore, and here is what is displayed in dmesg:
>
> bce0: /usr/src/sys/dev/bce/if_bce.c(4644): Error mapping mbuf into TX
> chain!
> bce0: /usr/src/sys/dev/bce/if_bce.c(4644): Error mapping mbuf into TX
> chain!
> bce0: /usr/src/sys/dev/bce/if_bce.c(4644): Error mapping mbuf into TX
> chain!
> [...]
This sounds like it is out of tx descriptors. Do you ever get a watchdog
timeout message? If not, can you try this patch:
Index: if_bce.c
===================================================================
RCS file: /usr/cvs/src/sys/dev/bce/if_bce.c,v
retrieving revision 1.5
diff -u -r1.5 if_bce.c
--- if_bce.c 12 Jul 2006 23:13:09 -0000 1.5
+++ if_bce.c 18 Jul 2006 18:59:45 -0000
@@ -4391,6 +4391,9 @@
DBRUNIF(1, sc->tx_mbuf_alloc--);
ifp->if_opackets++;
+
+ /* Clear the TX timeout timer. */
+ ifp->if_timer = 0;
}
sc->used_tx_bd--;
@@ -4406,9 +4409,6 @@
BUS_SPACE_BARRIER_READ);
}
- /* Clear the TX timeout timer. */
- ifp->if_timer = 0;
-
/* Clear the tx hardware queue full flag. */
if ((sc->used_tx_bd + BCE_TX_SLACK_SPACE) < USABLE_TX_BD) {
DBRUNIF((ifp->if_drv_flags & IFF_DRV_OACTIVE),
@@ -5031,10 +5031,12 @@
/* DBRUN(BCE_FATAL, bce_breakpoint(sc)); */
+ BCE_LOCK(sc);
ifp->if_drv_flags &= ~IFF_DRV_RUNNING;
- bce_init(sc);
+ bce_init_locked(sc);
ifp->if_oerrors++;
+ BCE_UNLOCK(sc);
}
--
John Baldwin
More information about the freebsd-hardware
mailing list