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