NetBSD/sys
bouyer a17f6ef0b7 Protect bnx_tick() with splnet.
Bring in fixes and improvements from OpenBSD:
revision 1.25
- Simplify the arguments to bnx_tx_encap.
- Don't copy the bd_chain head pointers into temporary objects, they are
available globally.

From scottl@FreeBSD

revision 1.26
Overhaul the transmit path:
- Eliminate the bnx_dmamap_arg structure.
- Refactor the loop that fills the buffer descriptor so that it can be done
with a single set of logic in a single loop instead of two sets of logic.
- Eliminate the need to cache and pass descriptor indexes between the start
loop and the encap function.
- Change the start loop to always check the ifnet sendq for more work.

From scottl@FreeBSD

revision 1.27
make the exit label naming scheme match the current function names, removes
a FreeBSD-ism from the original driver.

revision 1.28 -> 1.30
- Ensure that at least 16 TX descriptors are kept unused in the ring.
- Use more complete error handling for TX load problems.

From scottl@FreeBSD

revision 1.31
replace a few more instances of hand rolled code with the LIST_FOREACH macro.

revision 1.33
In bnx_start, check the used_tx_bd count rather than the descriptors
mbuf pointer to see if the transmit ring is full.  The mbuf pointer
is set only in the last descriptor of a multi-descriptor packet.
By relying on the mbuf pointers of the earlier descriptors, the
driver would sometimes overwrite a descriptor belonging to a
packet that wasn't completed yet.  Also, tx_chain_prod wasn't
updated inside the loop, causing the wrong descriptor to be checked
after the first iteration.  The upshot of all this was the loss of
some transmitted packets at medium to high packet rates.

In bnx_tx_encap, remove a couple of old statements that shuffled
around the tx_mbuf_map pointers.  These now correspond 1-to-1 with
the transmit descriptors, and they are not supposed to be changed.

Correct a couple of inaccurate comments.

From jdp@FreeBSD

revision 1.43
Allow the bnx(4) driver to make use of all of the available hardware
multicast hash slots. The bnx(4) hardware supports 8 slots instead of
4 like the bge(4) hardware.

From Mike Karels via FreeBSD

Tested by Brad, biorn@ and Johan M:son Lindman
2007-04-09 14:23:03 +00:00
..
altq Remove duplicate #include <sys/kauth.h> 2007-03-26 22:43:19 +00:00
arch Properly skip inactive devices; avoids a panic in pci_make_tag() later. 2007-04-08 21:35:21 +00:00
coda Remove cruft. Update to current reality. 2007-04-08 13:50:51 +00:00
compat Remove calls to now obsolete vn_start_write() and vn_finished_write(). 2007-04-07 15:06:53 +00:00
conf Import DRM drivers, brought into shape by Yorick Hardy, posted to tech-x11. 2007-03-20 18:05:25 +00:00
contrib/dev/ath Remove support for NetBSD/{,evb}sh5. 2007-04-08 09:35:21 +00:00
crypto
ddb
dev Protect bnx_tick() with splnet. 2007-04-09 14:23:03 +00:00
dist Pass an ipl argument to pool_init/POOL_INIT to be used when initializing 2007-03-12 18:18:22 +00:00
fs fix comment: struct fid is in fstypes.h now 2007-04-09 12:21:24 +00:00
gdbscripts
ipkdb
kern Remove now obsolete vn_start_write() and vn_finished_write() and 2007-04-08 11:20:42 +00:00
lib Remove support for NetBSD/{,evb}sh5. 2007-04-08 09:35:21 +00:00
lkm Remove support for NetBSD/{,evb}sh5. 2007-04-08 09:35:21 +00:00
miscfs Remove now obsolete vn_start_write() and vn_finished_write() and 2007-04-08 11:20:42 +00:00
net caddr_t fallout (only visible with options PPPOE_SERVER) 2007-03-31 11:00:23 +00:00
net80211 Reference the right flag, 2007-03-26 21:22:35 +00:00
netatalk Kill caddr_t; there will be some MI fallout, but it will be fixed shortly. 2007-03-04 05:59:00 +00:00
netbt rework ordering of error conditions for setopt, prefer to return EINVAL 2007-04-06 17:09:00 +00:00
netinet use size_t for indexes 2007-04-05 18:11:47 +00:00
netinet6 use size_t for indexes 2007-04-05 18:12:49 +00:00
netipsec Honor the ip4_ah_offsetmask bits (clear or not the ip->ip_off field for ah 2007-03-25 22:11:18 +00:00
netisdn Kill caddr_t; there will be some MI fallout, but it will be fixed shortly. 2007-03-04 05:59:00 +00:00
netiso A number of functions do not validate the length of arguments passed. 2007-03-29 08:19:20 +00:00
netkey Call key_checkspidup with spi in network bit order in order to make correct 2007-03-21 22:38:34 +00:00
netnatm Kill caddr_t; there will be some MI fallout, but it will be fixed shortly. 2007-03-04 05:59:00 +00:00
netsmb Pass an ipl argument to pool_init/POOL_INIT to be used when initializing 2007-03-12 18:18:22 +00:00
nfs Remove calls to now obsolete vn_start_write() and vn_finished_write(). 2007-04-06 14:28:28 +00:00
opencrypto Pass an ipl argument to pool_init/POOL_INIT to be used when initializing 2007-03-12 18:18:22 +00:00
secmodel
stand
sys Remove now obsolete vn_start_write() and vn_finished_write() and 2007-04-08 11:20:42 +00:00
ufs fix comment: struct fid is in fstypes.h now 2007-04-09 12:21:24 +00:00
uvm Export uvm_uarea_free() to the rest. 2007-03-24 21:15:39 +00:00
Makefile