Date: Wed, 6 Jan 2010 22:49:10 +0000 (UTC) From: Pyun YongHyeon <yongari@FreeBSD.org> To: cvs-src-old@freebsd.org Subject: cvs commit: src/sys/dev/bge if_bge.c if_bgereg.h Message-ID: <201001062249.o06MnXQ9047087@repoman.freebsd.org>
index | next in thread | raw e-mail
yongari 2010-01-06 22:49:10 UTC
FreeBSD src repository
Modified files: (Branch: RELENG_7)
sys/dev/bge if_bge.c if_bgereg.h
Log:
SVN rev 201686 on 2010-01-06 22:49:10Z by yongari
MFC r198923-198924,198927-198928
r198923:
Use correct dma tag for jumbo buffer.
r198924:
Covert bge_newbuf_std to use bus_dmamap_load_mbuf_sg(9). Note,
bge_newbuf_std still has a bug for handling dma map load failure
under high network load. Just reusing mbuf is not enough as driver
already unloaded the dma map of the mbuf. Graceful recovery needs
more work.
Ideally we can just update dma address part of a Rx descriptor
because the controller never overwrite the Rx descriptor. This
requires some Rx initialization code changes and it would be done
later after fixing other incorrect bus_dma(9) usages.
r198927:
Remove common DMA tag used for TX/RX mbufs and create Tx DMA tag
and Rx DMA tag separately. Previously it used a common mbuf DMA tag
for both Tx and Rx path but Rx buffer(standard ring case) should
have a single DMA segment and maximum buffer size of the segment
should be less than or equal to MCLBYTES. This change also make it
possible to add TSO with minor changes.
r198928:
Make bge_newbuf_std()/bge_newbuf_jumbo() returns actual error code
for buffer allocation. If driver know we are out of Rx buffers let
controller stop. This should fix panic when interface is run even
if it had no configured Rx buffers.
Revision Changes Path
1.198.2.22 +70 -52 src/sys/dev/bge/if_bge.c
1.73.2.9 +3 -2 src/sys/dev/bge/if_bgereg.h
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201001062249.o06MnXQ9047087>
