aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/mxge
diff options
context:
space:
mode:
authorAndrew Gallatin <gallatin@FreeBSD.org>2009-06-01 19:16:57 +0000
committerAndrew Gallatin <gallatin@FreeBSD.org>2009-06-01 19:16:57 +0000
commit4d9a5852aab2785e990d7e0f13b56b63ec384cdc (patch)
tree07b6db6f3a12c4494fe286c4bb52480113279e8f /sys/dev/mxge
parenta3f2e28dea50c3cfb8781053530adb320a98234f (diff)
Notes
Diffstat (limited to 'sys/dev/mxge')
-rw-r--r--sys/dev/mxge/if_mxge.c4
-rw-r--r--sys/dev/mxge/if_mxge_var.h1
2 files changed, 4 insertions, 1 deletions
diff --git a/sys/dev/mxge/if_mxge.c b/sys/dev/mxge/if_mxge.c
index 785470d8fcac..22b5ce274ca5 100644
--- a/sys/dev/mxge/if_mxge.c
+++ b/sys/dev/mxge/if_mxge.c
@@ -2351,7 +2351,7 @@ mxge_get_buf_big(struct mxge_slice_state *ss, bus_dmamap_t map, int idx)
err = ENOBUFS;
goto done;
}
- m->m_len = rx->cl_size;
+ m->m_len = rx->mlen;
err = bus_dmamap_load_mbuf_sg(rx->dmat, map, m,
seg, &cnt, BUS_DMA_NOWAIT);
if (err != 0) {
@@ -3432,6 +3432,8 @@ mxge_slice_open(struct mxge_slice_state *ss, int nbufs, int cl_size)
}
ss->rx_big.nbufs = nbufs;
ss->rx_big.cl_size = cl_size;
+ ss->rx_big.mlen = ss->sc->ifp->if_mtu + ETHER_HDR_LEN +
+ ETHER_VLAN_ENCAP_LEN + MXGEFW_PAD;
for (i = 0; i <= ss->rx_big.mask; i += ss->rx_big.nbufs) {
map = ss->rx_big.info[i].map;
err = mxge_get_buf_big(ss, map, i);
diff --git a/sys/dev/mxge/if_mxge_var.h b/sys/dev/mxge/if_mxge_var.h
index 28e12c13e909..b17faf232a05 100644
--- a/sys/dev/mxge/if_mxge_var.h
+++ b/sys/dev/mxge/if_mxge_var.h
@@ -120,6 +120,7 @@ typedef struct
int cl_size;
int alloc_fail;
int mask; /* number of rx slots -1 */
+ int mlen;
} mxge_rx_ring_t;
typedef struct