]> CyberLeo.Net >> Repos - FreeBSD/stable/8.git/commit
MFC r285973
authordavidcs <davidcs@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Wed, 5 Aug 2015 02:08:42 +0000 (02:08 +0000)
committerdavidcs <davidcs@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Wed, 5 Aug 2015 02:08:42 +0000 (02:08 +0000)
commit2116c858765c1d8ef745092c1c9c23376a704de4
tree70bc17ffadbf8d9416d4433fd2422d67c3edc1ce
parentaafed40f53349975f776776ad3e5f571cdfd5895
MFC r285973
    - Avoid lock contention in the if_transmit callback by using trylock and
     enqueueing the frames when it fails. This way there is some latency
     removed from the transmitting path.
    - If IFF_DRV_OACTIVE is set (and also if IFF_DRV_RUNNING is not) just
     enqueue the desired frames and return successful transmit. This way we
     avoid to return errors on transmit side and resulting in
     possible out-of-order frames. Please note that IFF_DRV_OACTIVE is set
     everytime we get the threshold ring hit, so this can be happening quite
     often.

Submitted by: Attilio.Rao@isilon.com

git-svn-id: svn://svn.freebsd.org/base/stable/8@286300 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
sys/dev/bxe/bxe.c
sys/dev/bxe/bxe.h