summaryrefslogtreecommitdiffstats
path: root/sys/dev/nfe
diff options
context:
space:
mode:
authoryongari <yongari@FreeBSD.org>2007-06-12 02:35:01 +0000
committeryongari <yongari@FreeBSD.org>2007-06-12 02:35:01 +0000
commit2255e968f3f73eab68839682b286d05b97ac4941 (patch)
treefef2e2bb8cd521bf5e5e4148efb308bc8ed1a077 /sys/dev/nfe
parent2e5bc7c3109c3bfa603821579449874c60f01679 (diff)
downloadFreeBSD-src-2255e968f3f73eab68839682b286d05b97ac4941.zip
FreeBSD-src-2255e968f3f73eab68839682b286d05b97ac4941.tar.gz
Increase a maximum segment size of DMA to 4096. Previously it used
MCLBYTES for the segment size but it used too many Tx descriptors in TSO case. While I'm here adjust maximum size of the sum of all segment lengths in a given DMA mapping to 65535, the maximum size, in bytes, of a IP packet.
Diffstat (limited to 'sys/dev/nfe')
-rw-r--r--sys/dev/nfe/if_nfe.c4
-rw-r--r--sys/dev/nfe/if_nfereg.h2
2 files changed, 4 insertions, 2 deletions
diff --git a/sys/dev/nfe/if_nfe.c b/sys/dev/nfe/if_nfe.c
index 9765a36..c620c42 100644
--- a/sys/dev/nfe/if_nfe.c
+++ b/sys/dev/nfe/if_nfe.c
@@ -1555,9 +1555,9 @@ nfe_alloc_tx_ring(struct nfe_softc *sc, struct nfe_tx_ring *ring)
BUS_SPACE_MAXADDR,
BUS_SPACE_MAXADDR,
NULL, NULL,
- MCLBYTES * NFE_MAX_SCATTER,
+ NFE_TSO_MAXSIZE,
NFE_MAX_SCATTER,
- MCLBYTES,
+ NFE_TSO_MAXSGSIZE,
0,
NULL, NULL,
&ring->tx_data_tag);
diff --git a/sys/dev/nfe/if_nfereg.h b/sys/dev/nfe/if_nfereg.h
index ad82d2e..716428e 100644
--- a/sys/dev/nfe/if_nfereg.h
+++ b/sys/dev/nfe/if_nfereg.h
@@ -50,6 +50,8 @@
#define NFE_JMEM ((NFE_JLEN * NFE_JSLOTS) + NFE_RESID)
#define NFE_MAX_SCATTER 32
+#define NFE_TSO_MAXSGSIZE 4096
+#define NFE_TSO_MAXSIZE 65535
#define NFE_IRQ_STATUS 0x000
#define NFE_IRQ_MASK 0x004
OpenPOWER on IntegriCloud