cvs commit: src/sys/dev/netif/bfe if_bfe.c
Sepherosa Ziehau
sephe at crater.dragonflybsd.org
Sat Jul 14 01:01:46 PDT 2007
sephe 2007/07/14 01:01:24 PDT
DragonFly src repository
Modified files:
sys/dev/netif/bfe if_bfe.c
Log:
busdma(9) fixes for bfe(4):
- Set low address of the top level dma tag to 1Gbytes, due to chipset limit.
- TX/RX rings need to be aligned on 4Kbytes.
- Correct dma map syncing direction.
- In bfe_txeof() and bfe_tx_ring_free(), unload dma map for all TX descs
instead of only for the TX desc holding the mbuf.
- In bfe_start():
o If number of free TX desc is less then 2, set IFF_OACTIVE and leave
o Pass reference of mbuf pointer into bfe_encap(), since the passed in
mbuf may be defragmented, i.e. changed.
- In bfe_encap():
o Assert that caller has make certain there is at least 2 free TX descs.
o Before setting up TX descs, count number of mbufs in the mbuf chain,
and do defragmentation if there are not enough free TX descs.
o After above changes, number of free TX descs will never be less than 2
when setting up TX descs; assert that.
o mbuf chain is always drained after setting up TX descs, nuke the goofy
if (m != NULL)
Obtained-from: FreeBSD (w/ modification)
Tested-by: Jörg Anslik <joerg at anslik.de>
Approved-by: dillon@
Revision Changes Path
1.31 +113 -78 src/sys/dev/netif/bfe/if_bfe.c
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/bfe/if_bfe.c.diff?r1=1.30&r2=1.31&f=u
More information about the Commits
mailing list