diff options
author | bmilekic <bmilekic@FreeBSD.org> | 2001-06-20 19:48:35 +0000 |
---|---|---|
committer | bmilekic <bmilekic@FreeBSD.org> | 2001-06-20 19:48:35 +0000 |
commit | 70d52016a3f34e35b033755b95ddad49e5f4c50c (patch) | |
tree | e79557908ee2eeed9a40c65a32399eb17abca830 /sys/dev/nge | |
parent | 398c0c0ca03faf96198e155dba0becba4e90d8da (diff) | |
download | FreeBSD-src-70d52016a3f34e35b033755b95ddad49e5f4c50c.zip FreeBSD-src-70d52016a3f34e35b033755b95ddad49e5f4c50c.tar.gz |
Change m_devget()'s outdated and unused `offset' argument to actually mean
something: offset into the first mbuf of the target chain before copying
the source data over.
Make drivers using m_devget() with a first argument "data - ETHER_ALIGN"
to use the offset argument to pass ETHER_ALIGN in. The way it was previously
done is potentially dangerous if the source data was at the top of a page
and the offset caused the previous page to be copied (if the
previous page has not yet been appropriately mapped).
The old `offset' argument in m_devget() is not used anywhere (it's always
0) and dates back to ~1995 (and earlier?) when support for ethernet trailers
existed. With that support gone, it was merely collecting dust.
Tested on alpha by: jlemon
Partially submitted by: jlemon
Reviewed by: jlemon
MFC after: 3 weeks
Diffstat (limited to 'sys/dev/nge')
-rw-r--r-- | sys/dev/nge/if_nge.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/sys/dev/nge/if_nge.c b/sys/dev/nge/if_nge.c index 9c15beb..65dd718 100644 --- a/sys/dev/nge/if_nge.c +++ b/sys/dev/nge/if_nge.c @@ -1278,8 +1278,8 @@ static void nge_rxeof(sc) * only gigE chip I know of with alignment constraints * on receive buffers. RX buffers must be 64-bit aligned. */ - m0 = m_devget(mtod(m, char *) - ETHER_ALIGN, - total_len + ETHER_ALIGN, 0, ifp, NULL); + m0 = m_devget(mtod(m, char *), total_len, ETHER_ALIGN, ifp, + NULL); nge_newbuf(sc, cur_rx, m); if (m0 == NULL) { printf("nge%d: no receive buffers " @@ -1288,7 +1288,6 @@ static void nge_rxeof(sc) ifp->if_ierrors++; continue; } - m_adj(m0, ETHER_ALIGN); m = m0; ifp->if_ipackets++; |