Date: Thu, 7 Jan 2010 00:04:29 +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: <201001070004.o0704rbL054986@repoman.freebsd.org>
index | next in thread | raw e-mail
yongari 2010-01-07 00:04:29 UTC
FreeBSD src repository
Modified files: (Branch: RELENG_7)
sys/dev/bge if_bge.c if_bgereg.h
Log:
SVN rev 201699 on 2010-01-07 00:04:29Z by yongari
MFC r199667-199668
r199667:
Cache Rx producer/Tx consumer index as soon as we know status block
update and then clear status block. Previously it used to access
these index without synchronization which may cause problems when
bounce buffers are used. Also add missing bus_dmamap_sync(9) in
polling handler. Since we now update status block in driver, adjust
bus_dmamap_sync(9) for status block.
r199668:
For MSI case, interrupt is not shared and we don't need to force
PCI flush to get correct status block update. Add an optimized
interrupt handler that is activated for MSI case. Actual interrupt
handling is done by taskqueue such that the handler does not
require driver lock for Rx path. The MSI capable bge(4) controllers
automatically disables further interrupt once it enters interrupt
state so we don't need PIO access to disable interrupt in interrupt
handler.
Revision Changes Path
1.198.2.27 +127 -26 src/sys/dev/bge/if_bge.c
1.73.2.13 +2 -0 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?201001070004.o0704rbL054986>
