summaryrefslogtreecommitdiffstats
path: root/sys/dev/msk
diff options
context:
space:
mode:
authoryongari <yongari@FreeBSD.org>2007-06-11 02:00:50 +0000
committeryongari <yongari@FreeBSD.org>2007-06-11 02:00:50 +0000
commit8fae96b4c4fe437468433354d25df08261121062 (patch)
tree440b5bcde5f5d1803f0658cc7dda415962b72734 /sys/dev/msk
parentea12389602f3ac2fed5598bd663c4a345eec80b4 (diff)
downloadFreeBSD-src-8fae96b4c4fe437468433354d25df08261121062.zip
FreeBSD-src-8fae96b4c4fe437468433354d25df08261121062.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/msk')
-rw-r--r--sys/dev/msk/if_msk.c4
-rw-r--r--sys/dev/msk/if_mskreg.h2
2 files changed, 4 insertions, 2 deletions
diff --git a/sys/dev/msk/if_msk.c b/sys/dev/msk/if_msk.c
index 96c959a..82f6301 100644
--- a/sys/dev/msk/if_msk.c
+++ b/sys/dev/msk/if_msk.c
@@ -2126,9 +2126,9 @@ msk_txrx_dma_alloc(struct msk_if_softc *sc_if)
BUS_SPACE_MAXADDR, /* lowaddr */
BUS_SPACE_MAXADDR, /* highaddr */
NULL, NULL, /* filter, filterarg */
- MCLBYTES * MSK_MAXTXSEGS, /* maxsize */
+ MSK_TSO_MAXSIZE, /* maxsize */
MSK_MAXTXSEGS, /* nsegments */
- MCLBYTES, /* maxsegsize */
+ MSK_TSO_MAXSGSIZE, /* maxsegsize */
0, /* flags */
NULL, NULL, /* lockfunc, lockarg */
&sc_if->msk_cdata.msk_tx_tag);
diff --git a/sys/dev/msk/if_mskreg.h b/sys/dev/msk/if_mskreg.h
index 67960c9..a0e99fd 100644
--- a/sys/dev/msk/if_mskreg.h
+++ b/sys/dev/msk/if_mskreg.h
@@ -2184,6 +2184,8 @@ struct msk_stat_desc {
#define MSK_JUMBO_RX_RING_CNT MSK_RX_RING_CNT
#define MSK_STAT_RING_CNT ((1 + 3) * (MSK_TX_RING_CNT + MSK_RX_RING_CNT))
#define MSK_MAXTXSEGS 32
+#define MSK_TSO_MAXSGSIZE 4096
+#define MSK_TSO_MAXSIZE 65535
#define MSK_MAXRXSEGS 32
/*
OpenPOWER on IntegriCloud