kern/103059: bce driver - "Error mapping mbuf into TX chain!" [Tentative Patch]

Michael Graziano mikeg at
Sat Sep 9 00:10:27 PDT 2006

>Number:         103059
>Category:       kern
>Synopsis:       bce driver - "Error mapping mbuf into TX chain!" [Tentative Patch]
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    freebsd-bugs
>State:          open
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sat Sep 09 07:10:20 GMT 2006
>Originator:     Michael Graziano
>Release:        6.1-RELEASE-p6
>Organization:, Inc.
FreeBSD 6.1-RELEASE-p6 FreeBSD 6.1-RELEASE-p6 #1: Thu Sep  7 19:40:58 EDT 2006     root at  amd64

Hardware: Dell 2950 (SMP)
Various types of network activity can provoke the following error from the bce driver:

bce0: Error mapping mbuf into TX chain!

This error knocks the network device out and requires a reboot to restore network functionality.

This has been discussed at length on the -STABLE list, but I was unable to find other PRs on it.  See for lots of details.

Relevant $ FreeBSD $ tags (bce files):

if_bce.c:__FBSDID("$FreeBSD: src/sys/dev/bce/if_bce.c,v 2006/04/13 22:42:07 ps Exp $");
if_bcefw.h: * $FreeBSD: src/sys/dev/bce/if_bcefw.h,v 2006/04/12 18:09:27 ps Exp $
if_bcereg.h: * $FreeBSD: src/sys/dev/bce/if_bcereg.h,v 2006/05/04 07:31:56 scottl Exp $

Various types of network activity can provoke the error.  

I am able to reproduce it reliably with fairly light HTTP traffic (webmin login scree).
Others have been able to reproduce it by piping dd over SSH.

See email thread referenced in description.
This is rumored to be fixed in -STABLE.  If this is the case, the changes should be merged to RELENG_6_1.
If you need a guinnea pig to verify the fix, I can install a -STABLE kernel on walnut on Monday for testing purposes.

If this is not fixed in -STABLE, the patch below at least masks the problem in my case (not sure if it's a real fix though - it seems like it should just be pushing the problem back for a while)

--- if_bcereg.h~        Thu May  4 03:31:56 2006
+++ if_bcereg.h Fri Sep  8 13:43:26 2006
@@ -4602,7 +4602,7 @@
 #define BCE_TX_TIMEOUT                                 5
-#define BCE_MAX_SEGMENTS                               8
+#define BCE_MAX_SEGMENTS                               32
 #define BCE_DMA_ALIGN                                  8
 #define BCE_DMA_BOUNDARY                               0

More information about the freebsd-bugs mailing list