Subject: Re: ath0: IPv6 packet does not reach the other end
To: None <itojun@iijlab.net>
From: enami tsugutomo <enami@but-b.or.jp>
List: tech-net
Date: 10/16/2003 08:09:34
>	if I try to copy large file from laptop to cvs.kame.net (or

ath(4) fails to detect the case that # of DMA segment exceeds # of
descriptor.  Here is work around but ugly.

enami.

Index: ath.c
===================================================================
RCS file: /cvsroot/src/sys/dev/ic/ath.c,v
retrieving revision 1.5
diff -u -r1.5 ath.c
--- ath.c	15 Oct 2003 03:04:03 -0000	1.5
+++ ath.c	15 Oct 2003 09:27:51 -0000
@@ -2193,6 +2193,11 @@
 	 * also calculates the number of descriptors we need.
 	 */
 	error = ath_buf_dmamap_load_mbuf(sc->sc_dmat, bf, m0, BUS_DMA_NOWAIT);
+#ifdef __NetBSD__
+	if (error == EFBIG)
+		bf->bf_nseg = ATH_TXDESC + 1;	/* XXX */
+	else
+#endif
 	if (error != 0) {
 		sc->sc_stats.ast_tx_busdma++;
 		m_freem(m0);