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);