1
0
mirror of https://git.FreeBSD.org/src.git synced 2025-01-13 14:40:22 +00:00
freebsd/sys/dev
Pyun YongHyeon d65abd6663 Overhaul re(4).
o Increased number of Rx/Tx descriptors to 256 for 8169 GigEs
  because it's hard to push the hardware to the limit with default
  64 descriptors.
  TSO requires large number of Tx descriptors to pass a full sized
  TCP segment(65535 bytes IP packet) to hardware. Previously it
  consumed 32 Tx descriptors, assuming MCLBYTES DMA segment size,
  to send the TCP segment which means re(4) couldn't queue more
  than two full sized IP packets.
  For 8139C+ it still uses 64 Rx/Tx descriptors due to its hardware
  limitations. With this changes there are (very) small waste of
  memory for 8139C+ users but I don't think it would affect 8139C+
  users for most cases.
o Various bus_dma(9) fixes.
   - The hardware supports DAC so allow 64bit DMA operations.
   - Removed BUS_DMA_ALLOC_NOW flag.
   - Increased DMA segment size to 4096 from MCLBYTES because TSO
     consumes too many descriptors with MCLBYTES DMA segment size.
   - Tx/Rx side bus_dmamap_load_mbuf_sg(9) support. With these
     changes the code is more readable than previous one and got a
     (slightly) better performance as it doesn't need to pass/
     decode arguments to/from callback function.
   - Removed unnecessary callback function re_dmamap_desc() and
     nuked rl_dmaload_arg structure which was used in the callback.
   - Additional protection for DMA map load failure. In case of
     failure reuse current map instead of returning a bogus DMA
     map.
  -  Deferred DMA map unloading/sync operation for maximum
     performance until we really need to load new DMA map. If we
     happen to reuse current map(e.g. input error) there is no need
     to sync/unload/load again.
  -  The number of allowable Tx DMA segments for a mbuf chains are
     now 32 instead of magic nseg value. If the number of available
     Tx descriptors are short enough to send highly fragmented mbuf
     chains an optimized re_defrag() is called to collapse mbuf
     chains which is supposed to be much faster than m_defrag(9).
     re_defrag() was borrowed from ath(4).
   - Separated Rx/Tx DMA tag from a common DMA tag such that Rx DMA
     tag correctly uses DMA maps that were created with DMA alignment
     restriction(8bytes alignments). Tx DMA tag does not have such
     alignment limitation.
   - Added additional sanity checks for DMA ring map load failure.
   - Added additional spare Rx DMA map for graceful handling of Rx
     DMA map load failure.
   - Fixed misused bus_dmamap_sync(9) and added missing
     bus_dmamap_sync(9) in re_encap()/re_txeof()/re_rxeof().
o Enabled TSO again as re(4) have reasonable number of Tx
  descriptors.
o Don't touch DMA address of a Tx descriptor in re_txeof(). It's
  not needed.
o Fix incorrect update of if_ierrors counter. For Rx buffer
  shortage it should update if_qdrops as the buffer is reused.
o Added checks for unsupported H/W revisions and return ENXIO for
  these hardwares. This is required to remove resource allocation
  code in re_probe as other drivers do in device probe routine.
o Modified descriptor index manipulation macros as it's now possible
  to have different number of descriptors for Rx/Tx.
o In re_start, to save a lock operation, use IFQ_DRV_IS_EMPTY before
  trying to invoke IFQ_DRV_DEQUEUE. Also don't blindly call re_encap
  since we already know the number of available Tx descriptors in
  advance.
o Removed RL_TX_DESC_THLD which was used to reserve RL_TX_DESC_THLD
  descriptors in Tx path. There is no such a limitation mentioned in
  8139C+/8169/8110/8168/8101/8111 datasheet and it seems to work ok
  without reserving RL_TX_DESC_THLD descriptors.
o Fix a comment for RL_GTXSTART. The register is 8bits register.
o Added comments for 8169/8139C+ hardware restrictions on descriptors.
o Removed forward declaration for "struct rl_softc", it's not needed.
o Added a new structure rl_txdesc for Tx descriptor managements and
  a structure rl_rxdesc for Rx descriptor managements.
o Removed unused member variable rl_intlock in driver softc. There are
  still several unused member variables which are supposed to be used
  to access hardware statistics counters. But it seems that accessing
  hardware counters were not implemented yet.
2008-01-15 01:10:31 +00:00
..
aac Avoid holding the aac_io_lock over copyout. 2007-12-20 21:13:58 +00:00
acpi_support
acpica Fix GPE livelock that occurs on HP/Compaq laptops, mostly in the thermal 2008-01-12 22:13:12 +00:00
adlink
advansys
agp Add the 845M GMCH controller. 2007-11-26 18:17:07 +00:00
aha
ahb
aic
aic7xxx
amd
amr Rewrite the DMA code paths from being an impenitrable maze of special cases 2007-12-12 05:55:03 +00:00
an MFP4(129048): Eliminating an unnecessary check on an_gone inside 2007-11-27 08:29:24 +00:00
ar
arcmsr Fix an incorrect FreeBSD version test. 2007-12-09 19:24:27 +00:00
arl
asmc Move ASMC_FAN_FUNCS in the Macmini structure declaration one line up 2007-11-22 23:38:24 +00:00
asr
ata If the disk reports that it support the Compact Flash Association command 2008-01-02 20:33:54 +00:00
ath
atkbdc Remove explicit calls to keyboard methods with their respective variants 2007-12-29 21:55:25 +00:00
auxio
awi
bce Fix function prototype for device_shutdown method. 2007-11-22 02:45:00 +00:00
bfe Fix function prototype for device_shutdown method. 2007-11-22 02:45:00 +00:00
bge Add support for the BMC5722. 2007-12-25 19:51:18 +00:00
bktr
buslogic
cardbus
ce
ciss
cm
cnw
coretemp Disable the check for errata AE18. On MacBooks (1,1 version) there's 2008-01-10 16:09:22 +00:00
cp
cpufreq
cs
ct
ctau
cx
cxgb - Assert that immpkt is not set 2008-01-14 07:55:56 +00:00
cy
dc Fix function prototype for device_shutdown method. 2007-11-22 02:45:00 +00:00
dcons Add a new 'why' argument to kdb_enter(), and a set of constants to use 2007-12-25 17:52:02 +00:00
de
digi
dpt
drm Move the agp(4) driver from sys/pci to sys/dev/agp. __FreeBSD_version was 2007-11-12 21:51:38 +00:00
ed Add Winbond W89C940F to the list. Also, stub in some entries for two 2007-12-31 03:29:02 +00:00
eisa
em Add COHERENT to descriptor mem allocation for the 2007-11-28 23:04:11 +00:00
en
ep
esp The ESP driver isn't really MPSAFE, so don't mark it that it is. 2007-11-11 14:45:35 +00:00
ex
exca
fatm
fb Replace explicit calls to video methods with their respective variants 2007-12-29 23:26:59 +00:00
fdc The wakeup() line from the rev. 1.319 is wrong and reintroduces 2008-01-11 16:50:52 +00:00
fe
firewire
flash
fxp
gem o In preparation for basing a new driver on this one: 2007-12-30 01:32:03 +00:00
harp
hatm
hfa
hifn
hme
hptiop
hptmv
hptrr Add the 'hptrr' driver for supporting the following Highpoint RocketRAID 2007-12-15 00:56:17 +00:00
hwpmc VOP_LOCK1() (and so VOP_LOCK()) and VOP_UNLOCK() are only used in 2008-01-13 14:44:15 +00:00
ic
ichsmb Add the Intel 82801FB (ICH6) SMBus controller and the 2007-11-26 19:54:54 +00:00
ichwd Add support for ICH8M. 2008-01-07 09:46:39 +00:00
ida
idt
ie
ieee488
if_ndis sc->ndis_tq variable is only initialized when a driver module is for wireless 2007-12-09 20:14:01 +00:00
iicbus
iir Fix a buffer overflow in the processing of various SCSI commands. This likely 2008-01-09 20:02:56 +00:00
io
ipmi
ips
ipw Plug two potential (root-only, local) information leaks. buf is not 2007-12-05 19:32:07 +00:00
iscsi/initiator
isp
ispfw
iwi Plug two potential (root-only, local) information leaks. buf is not 2007-12-05 19:32:07 +00:00
ixgb
ixgbe
joy
kbd Remove explicit calls to keyboard methods with their respective variants 2007-12-29 21:55:25 +00:00
kbdmux Remove explicit calls to keyboard methods with their respective variants 2007-12-29 21:55:25 +00:00
le Correct the comments in am7990_intr() and am79900_intr(); it's not 2007-12-30 00:23:38 +00:00
led
lge Fix function prototype for device_shutdown method. 2007-11-22 02:45:00 +00:00
lmc
mc146818
mca
mcd
md VOP_LOCK1() (and so VOP_LOCK()) and VOP_UNLOCK() are only used in 2008-01-13 14:44:15 +00:00
mem
mfi Add Dell's sub-vendor id to identify PERC6 RAID controller which has LSI 2007-12-19 17:23:47 +00:00
mii Reset autonegotation timer if media option is not IFM_AUTO. 2007-11-16 10:39:18 +00:00
mk48txx
mlx
mly
mmc
mpt
mse
msk Bring in support for: Marvell Yukon 8039 2007-12-05 09:41:58 +00:00
mxge
my
ncv
nfe Fix function prototype for device_shutdown method. 2007-11-22 02:45:00 +00:00
nge Fix function prototype for device_shutdown method. 2007-11-22 02:45:00 +00:00
nmdm
nsp
null
nve Fix function prototype for device_shutdown method. 2007-11-22 02:45:00 +00:00
nvram
nxge
ofw Add a new 'why' argument to kdb_enter(), and a set of constants to use 2007-12-25 17:52:02 +00:00
patm
pbio
pccard
pccbb
pcf
pci Fix some bugs in the FreeBSD 4/5/6 pci(4) IOCTLs compatibility code: 2007-12-26 21:50:59 +00:00
pdq
powermac_nvram Redefine bus_space_tag_t on PowerPC from a 32-bit integral to 2007-12-19 18:00:50 +00:00
ppbus Work around problems with the ppbus(4)'s interesting way of managing 2008-01-10 23:43:47 +00:00
ppc
pst
puc o Add Moxa Technologies CP-104EL PCI Express 4 port Serial card. 2008-01-12 19:14:29 +00:00
ral Check wep flag in *_tx_mgt since we need to encrypt some management frame 2007-11-06 07:30:12 +00:00
random Correct a random value disclosure in random(4). 2007-11-29 16:06:12 +00:00
ray
rc
re Overhaul re(4). 2008-01-15 01:10:31 +00:00
rndtest
rp
rr232x
safe
sbni
sbsh
scc
scd
sf Fix function prototype for device_shutdown method. 2007-11-22 02:45:00 +00:00
si Based in info gleaned from the web and other drivers (including the Linux 2007-12-01 20:39:47 +00:00
sio Add a new 'why' argument to kdb_enter(), and a set of constants to use 2007-12-25 17:52:02 +00:00
sk Fix function prototype for device_shutdown method. 2007-11-22 02:45:00 +00:00
smbus
sn
snc
snp Move the check for the snp device being already attached after the 2007-12-24 13:47:16 +00:00
sound Limit total hardware playback channels to just 1. The reliability of 2007-12-14 02:16:26 +00:00
speaker
spibus
sr
stg
stge Implement WOL capability. 2008-01-14 07:16:48 +00:00
streams Make ftruncate a 'struct file' operation rather than a vnode operation. 2008-01-07 20:05:19 +00:00
sym
syscons Replace explicit calls to video methods with their respective variants 2007-12-29 23:26:59 +00:00
tdfx
ti Fix function prototype for device_shutdown method. 2007-11-22 02:45:00 +00:00
trm
twa
twe
tx
txp Read MII_ANAR register and get common denominator ability. 2007-11-16 10:32:10 +00:00
uart Add a new 'why' argument to kdb_enter(), and a set of constants to use 2007-12-25 17:52:02 +00:00
ubsec
usb Remove explicit calling of lockmgr() with the NULL argument. 2008-01-08 23:48:31 +00:00
utopia Fix a use-after-free. 2007-12-05 19:32:59 +00:00
vge Fix function prototype for device_shutdown method. 2007-11-22 02:45:00 +00:00
vkbd Remove explicit calls to keyboard methods with their respective variants 2007-12-29 21:55:25 +00:00
vr Fix function prototype for device_shutdown method. 2007-11-22 02:45:00 +00:00
vx Fix function prototype for device_shutdown method. 2007-11-22 02:45:00 +00:00
watchdog
wds
wi
wl
wpi Fix up a race condition with the callout_stop method in newstate. 2007-11-27 09:09:09 +00:00
xe