freebsd-dev/sys/dev
Scott Long 3469383f4f Big update to the iir driver:
- Don't use a common buffer in the softc to store per-command data.  Reserve
  a buffer in the command itself.
- Don't allocate DMA memory for the kernel command structures when all you
  really need is DMA memory for the scratch buffer embedded in them.  Instead
  allocate a slab for the scratch buffers and divide it up as needed.
- Call bus_dmamap_unload() at the completion of commands.
- Preserve and clear the CAM CCB status flags at completion.
- Reorder some low-level command operations to try to close races.
- Limit the simq to 32 commands for now.  There are some serious problems
  with the driver under load that are not well understood, so keeping the
  simq lower helps avoid this.  It has been tested at a higher value, but
  this is a safe value that doesn't show much performance degredation.

These changes allow the driver to work reliably with >4GB of memory on i386
and amd64, and also work around deadlocks seen under very high load in
certain situations.  The work-around is far from ideal, but without and
documentation it is hard to know what the right fix is.

MFC candidate
2006-03-01 07:24:39 +00:00
..
aac Initialize the event tailq. 2005-12-28 21:18:55 +00:00
acpi_support Add support for Asus A4D laptops. Currently without display switching 2006-01-29 23:59:43 +00:00
acpica Remove unused variable. 2006-02-21 03:16:58 +00:00
adlink Use the new bus_space/resource convenience functions. 2005-09-24 20:46:02 +00:00
advansys Type of overrun_buf doesn't matter to this code, but does to gcc. 2006-02-04 22:33:08 +00:00
agp Add support for the Intel E7205 chipset. 2006-02-17 01:40:46 +00:00
aha Remove bus_{mem,p}io.h and related code for a micro-optimization on i386 2005-05-29 04:42:30 +00:00
ahb Remove bus_{mem,p}io.h and related code for a micro-optimization on i386 2005-05-29 04:42:30 +00:00
aic Eliminate support for oldcard by removing the compat shims. 2005-09-20 19:45:08 +00:00
aic7xxx Fix -Wundef warnings from compiling GENERIC and LINT kernels of 2005-12-06 11:19:37 +00:00
amd Remove bus_{mem,p}io.h and related code for a micro-optimization on i386 2005-05-29 04:42:30 +00:00
amr Check the return value of copyin() and return an error if it fails. 2006-02-23 18:05:38 +00:00
an Silence the strict-alias warnings. Make a trip through (void *) when 2006-02-04 22:51:03 +00:00
ar - Use bus_setup_intr() and bus_teardown_intr() to register device driver 2006-02-22 18:16:26 +00:00
arcmsr Fix -Wundef. 2005-12-04 02:12:43 +00:00
arl - Store pointer to the link-level address right in "struct ifnet" 2005-11-11 16:04:59 +00:00
asr Give the asr softc list global a proper name. 2006-02-12 06:57:41 +00:00
ata Fix ata_reinit so it does things in the right order to prevent panic's. 2006-02-25 17:27:33 +00:00
ath backout 1.136 until we can resolve report that it causes output to stall 2006-02-27 17:20:23 +00:00
atkbdc Fix a bug in Synaptics Touchapd support where psm(4) will enter an infinite 2006-01-05 19:24:01 +00:00
auxio - Only touch the LED bit of the (LED) AUXIO register when turning the 2006-01-26 19:04:18 +00:00
awi Remove support for oldcard by removing compat shims. 2005-09-20 19:46:54 +00:00
bfe Do not touch ifp->if_baudrate in miibus aware drivers. 2006-02-14 12:44:56 +00:00
bge 1) Ignore link events for MII/GMII cards if MI auto-polling disabled. This 2006-02-17 14:33:35 +00:00
bktr if we are compiling with smbus support, properly depend upon the iic and 2006-01-27 08:42:48 +00:00
buslogic Remove bus_{mem,p}io.h and related code for a micro-optimization on i386 2005-05-29 04:42:30 +00:00
cardbus Make the 'pci_devclass' pointer variable private (drivers really shouldn't 2006-01-20 22:00:50 +00:00
ce Fix compilation with -Wundef (NBPF is undefined on FreeBSD >4). 2006-02-03 20:55:30 +00:00
ciss It seems ciss should ignore overrun and underrun on a SCSI INQUIRY 2005-12-16 06:50:55 +00:00
cm Make sure that we call if_free(ifp) after bus_teardown_intr. Since we 2005-09-19 03:10:21 +00:00
cnw Make sure that we call if_free(ifp) after bus_teardown_intr. Since we 2005-09-19 03:10:21 +00:00
cp trim trailing ^I 2005-12-17 07:09:17 +00:00
cpufreq Only activate ICH speedstep if we're going to use it. No bugs were observed 2005-03-20 01:25:21 +00:00
cs Use ETHER_ADDR_LEN rather than 6. 2006-02-11 03:50:03 +00:00
ct Change a directory layout for pc98. 2005-05-10 12:02:18 +00:00
ctau Backout if_cp 1.26, if_ct 1.27, if_cx 1.47 by obrien: 2005-09-27 16:12:49 +00:00
cx - Use swi_remove() to teardown swi handlers rather than 2005-10-26 15:52:16 +00:00
cy Catch up with new interrupt handling code. 2005-10-26 06:44:59 +00:00
dc Do not touch ifp->if_baudrate in miibus aware drivers. 2006-02-14 12:44:56 +00:00
dcons Use ttyalloc() instead of ttymalloc() 2006-01-04 09:20:41 +00:00
de Repo copy de driver to dev/de, and adjust. 2006-02-26 17:52:04 +00:00
dec
digi Eliminate two unused arguments to ttycreate(). 2005-10-16 20:22:56 +00:00
dpt Remove bus_{mem,p}io.h and related code for a micro-optimization on i386 2005-05-29 04:42:30 +00:00
drm - Bump FreeBSD version for the hostb(4) and vgapci(4) drivers as well as 2005-12-20 22:44:36 +00:00
ed Initialize the port_bst and port_bsh variables. 2006-02-21 12:01:39 +00:00
eisa Make the eisa probe messages just like all the others in the system. 2005-08-01 07:09:15 +00:00
em Back out 1.112,1.113. I don't have enough resources to fix breakages 2006-02-22 14:11:16 +00:00
en Drop the driver lock around atm_input() analogous to all the ethernet 2005-10-27 21:08:12 +00:00
ep Remove ifdef notdef SIOCHWADDR vestige. 2006-02-04 08:16:07 +00:00
esp Fix -Wundef from compiling the amd64 LINT. 2005-12-04 10:06:06 +00:00
ex Remove ifdef notyet SIOCGHWADDR vestige. 2006-02-04 08:16:41 +00:00
exca Set the name of the chipset found 2005-10-19 00:25:39 +00:00
fatm Replace custom mbuf writeability test with generic 2005-09-19 21:59:49 +00:00
fb Fix -Wundef warnings from compiling GENERIC and LINT kernels of 2005-12-06 11:19:37 +00:00
fdc - Use callout_init_mtx() to initialize toffhandle callout using the fdc's 2006-02-23 19:11:16 +00:00
fe Return 0 if we are a network card and do match. Previously, we'd bogusly 2005-11-19 23:26:57 +00:00
firewire Don't type pun accidentally. Instead, be explicit that we're type 2006-02-04 21:37:39 +00:00
fxp Do not touch ifp->if_baudrate in miibus aware drivers. 2006-02-14 12:44:56 +00:00
gem Fix -Wundef warnings found when compiling i386 LINT, GENERIC and 2005-12-05 11:58:35 +00:00
gfb Remove bus_{mem,p}io.h and related code for a micro-optimization on i386 2005-05-29 04:42:30 +00:00
harp Stop embedding struct ifnet at the top of driver softcs. Instead the 2005-06-10 16:49:24 +00:00
hatm Replace m_extadd() with macro version MEXTADD(). 2005-09-19 22:04:41 +00:00
hfa Stop embedding struct ifnet at the top of driver softcs. Instead the 2005-06-10 16:49:24 +00:00
hifn These registers are saved by pci bus code. Remove from #if 0'd code anyway 2005-06-05 22:57:32 +00:00
hme fix Rx checksum computation on little endian systems. 2006-01-17 06:02:22 +00:00
hptmv Fix -Wundef. 2005-12-04 02:12:43 +00:00
hwpmc Fix a memory leak. 2006-01-17 16:53:50 +00:00
ic MFp4: 2006-02-24 02:03:35 +00:00
ichsmb This signal handling code is worse than a no-op. If a 2006-01-03 17:01:43 +00:00
ichwd Re-work the bus attachment somewhat. Make the rids unique for 2006-02-17 18:46:18 +00:00
ida Remove bus_{mem,p}io.h and related code for a micro-optimization on i386 2005-05-29 04:42:30 +00:00
idt Stop embedding struct ifnet at the top of driver softcs. Instead the 2005-06-10 16:49:24 +00:00
ie Fix -Wundef warnings found when compiling i386 LINT, GENERIC and 2005-12-05 11:58:35 +00:00
ieee488 Make resources do the right thing by design instead of accident. 2006-01-14 09:46:27 +00:00
if_ndis When ndis_attach() runs, it has to very briefly initialize the card 2006-02-04 19:42:49 +00:00
iicbus Remove public declarations of variables that were forgotten when they were 2005-08-10 07:10:02 +00:00
iir Big update to the iir driver: 2006-03-01 07:24:39 +00:00
io
ipmi Don't conflict with the DEBUG define. 2006-02-13 16:50:45 +00:00
ips Shuffle some definitions so that this can be included from userland. 2006-01-03 23:03:39 +00:00
ipw Use memcpy/memset consistently accross ipw and iwi instead of bcopy/bzero. 2005-11-20 16:13:00 +00:00
isp propagate role of device for ISP_GET_PDBINFO 2006-02-26 22:40:56 +00:00
ispfw Fix -Wunder and make the sbus code really compile only on sparc64. 2005-12-04 10:03:00 +00:00
iwi correct check for whether wpa is enabled 2006-02-20 20:49:56 +00:00
ixgb - Fix VLAN_INPUT_TAG() macro, so that it doesn't touch mtag in 2005-12-18 18:24:27 +00:00
joy Unbreak second joystick (joy1) support. 2005-11-09 20:26:00 +00:00
kbd Integrate kbdmux(4) into syscons(4) and kbd code. 2006-02-28 23:46:23 +00:00
kbdmux Plug memory leak 2006-02-27 21:47:38 +00:00
le - In the interrupt handler clear the interrupt source flags before 2006-02-21 20:20:43 +00:00
led Add placeholder mutex argument to new_unrhdr(). 2005-03-07 11:05:47 +00:00
lge Do not touch ifp->if_baudrate in miibus aware drivers. 2006-02-14 12:44:56 +00:00
lmc Fix -Wundef warnings found when compiling i386 LINT, GENERIC and 2005-12-05 11:58:35 +00:00
lnc Really fix it this time. 2005-11-12 19:14:21 +00:00
mc146818 After some input from bde@ and rereading the datasheet use a MTX_SPIN 2005-06-04 23:24:50 +00:00
mca
mcd Remove bus_{mem,p}io.h and related code for a micro-optimization on i386 2005-05-29 04:42:30 +00:00
md make sure that the start and end preloaded MFS markers are 2006-01-31 13:35:30 +00:00
mem
mii - Introduce ifmedia_baudrate(), which returns correct baudrate of the 2006-02-14 12:10:03 +00:00
mk48txx - Add locking. 2005-05-19 21:16:50 +00:00
mlx Add missing parenthesis around error handling code upon attaching 2005-07-30 15:53:40 +00:00
mly Retire the last of the FreeBSD 4.x compat code from the mly driver. 2005-08-08 12:23:27 +00:00
mpt Fix mpt_reset to try mpt_hard_reset more than once, and to try 2006-02-28 07:44:50 +00:00
mse - Use bus_setup_intr() and bus_teardown_intr() to register device driver 2006-02-22 18:16:26 +00:00
mxge 10GbE mode driver and binary firmware for Myricom's PCI-express NICs. 2006-02-19 22:39:19 +00:00
my Fix -Wundef from compiling the amd64 LINT. 2005-12-04 10:06:06 +00:00
myri10ge 10GbE mode driver and binary firmware for Myricom's PCI-express NICs. 2006-02-19 22:39:19 +00:00
ncv Remove OLDCARD support by removing compat shims 2005-09-20 19:54:11 +00:00
nge Do not touch ifp->if_baudrate in miibus aware drivers. 2006-02-14 12:44:56 +00:00
nmdm Use ttyalloc() instead of ttymalloc() 2006-01-04 08:34:23 +00:00
nsp Remove OLDCARD support by removing compat shims 2005-09-20 19:54:11 +00:00
null
nve Make nve(4) work for people with nf3/nf4 who never got it 2005-12-12 06:23:43 +00:00
ofw - Add a new method ofw_bus_default_get_devinfo() that allows to retrieve 2005-11-22 16:37:45 +00:00
patm Replace m_extadd() with macro version MEXTADD(). 2005-09-19 22:04:41 +00:00
pbio Remove bus_{mem,p}io.h and related code for a micro-optimization on i386 2005-05-29 04:42:30 +00:00
pccard Add some sanity checking to the pccard insertion case. Whine if the 2005-12-28 05:30:09 +00:00
pccbb Detach the children before we delete them. This is a little cleaner 2006-02-07 18:38:51 +00:00
pcf - Use bus_setup_intr() and bus_teardown_intr() to register device driver 2006-02-22 18:16:26 +00:00
pci Don't add an agp child in vgapci's attach routine if the PCIY_AGP 2006-02-01 15:45:29 +00:00
pdq - Make IFP2ENADDR() a pointer to IF_LLADDR() rather than another 2005-11-11 07:36:14 +00:00
ppbus - Use bus_setup_intr() and bus_teardown_intr() to register device driver 2006-02-22 18:16:26 +00:00
ppc G/C unused variable. 2006-02-22 21:47:04 +00:00
pst
puc MFp4: 2006-02-24 02:06:57 +00:00
ral use s/w bmiss facility 2006-02-18 01:04:08 +00:00
random Remove GIANT from device random. 2005-12-20 21:41:52 +00:00
ray - Store pointer to the link-level address right in "struct ifnet" 2005-11-11 16:04:59 +00:00
rc - Use swi_remove() to teardown swi handlers rather than 2005-10-26 15:52:16 +00:00
re Copy MAC address to fix alignment problems. 2006-02-20 10:29:40 +00:00
rndtest
rp The UPCI 32 rp(4) card uses BAR 2 like the UPCI 80 card. 2006-01-25 14:55:11 +00:00
sab - Use swi_remove() to teardown swi handlers rather than 2005-10-26 15:52:16 +00:00
safe
sbni - Store pointer to the link-level address right in "struct ifnet" 2005-11-11 16:04:59 +00:00
sbsh Make sure that we call if_free(ifp) after bus_teardown_intr. Since we 2005-09-19 03:10:21 +00:00
scd Remove bus_{mem,p}io.h and related code for a micro-optimization on i386 2005-05-29 04:42:30 +00:00
sf Do not touch ifp->if_baudrate in miibus aware drivers. 2006-02-14 12:44:56 +00:00
si - Update copyright years from the Specialix SDK. 2006-01-06 20:17:48 +00:00
sio - Use bus_setup_intr() and bus_teardown_intr() to register device driver 2006-02-22 18:16:26 +00:00
sk Do not touch ifp->if_baudrate in miibus aware drivers. 2006-02-14 12:44:56 +00:00
smbus Drivers for AMD-8111 and NVIDIA nForce2/3/4 SMBus 2.0 controllers. 2005-12-21 15:49:51 +00:00
sn Fix mismerge after last cvs update for the IFQ_DRV_DEQUEUE changes. 2006-02-04 08:19:00 +00:00
snc Fix -Wundef warnings from compiling GENERIC and LINT kernels of 2005-12-06 11:19:37 +00:00
snp Restore the ability to detach from a tty via SIOCSTTY and document 2005-09-19 13:48:45 +00:00
sound Trim unnecessary pointer alignment. 2006-02-24 09:29:32 +00:00
speaker Add /dev/speaker support to amd64. 2005-11-11 09:57:32 +00:00
sr - Use bus_setup_intr() and bus_teardown_intr() to register device driver 2006-02-22 18:16:26 +00:00
stg Remove OLDCARD shims 2005-09-21 22:45:14 +00:00
streams
sym FreeBSD has had endian conversion macros for a long time. Axe the custom 2005-12-05 22:37:37 +00:00
syscons Integrate kbdmux(4) into syscons(4) and kbd code. 2006-02-28 23:46:23 +00:00
tdfx Normalize a significant number of kernel malloc type names: 2005-10-31 15:41:29 +00:00
tga Remove bus_{mem,p}io.h and related code for a micro-optimization on i386 2005-05-29 04:42:30 +00:00
ti - Tx side bus_dmamap_load_mbuf_sg(9) support. This reduces bookkeeping 2006-01-03 06:14:07 +00:00
trm Remove bus_{mem,p}io.h and related code for a micro-optimization on i386 2005-05-29 04:42:30 +00:00
twa twa corresponding to the 9.3.0.1 release on the 3ware website. This driver has 2005-11-08 22:51:43 +00:00
twe Normalize a significant number of kernel malloc type names: 2005-10-31 15:41:29 +00:00
tx Do not touch ifp->if_baudrate in miibus aware drivers. 2006-02-14 12:44:56 +00:00
txp - Fix VLAN_INPUT_TAG() macro, so that it doesn't touch mtag in 2005-12-18 18:24:27 +00:00
uart Replace our local UART_SIGMASK_* with the global SER_MASK_*. 2006-02-24 05:40:17 +00:00
ubsec
usb Don't free ifaces yet, should fix a panic 2006-03-01 06:31:24 +00:00
utopia Struct ifatm isn't at the beginning of the softc anymore. Use the 2005-06-22 06:51:52 +00:00
vge Do not touch ifp->if_baudrate in miibus aware drivers. 2006-02-14 12:44:56 +00:00
vkbd Disable custom locking in the vkbd(4) for now and make it rely on the 2006-02-27 06:17:48 +00:00
vr Do not touch ifp->if_baudrate in miibus aware drivers. 2006-02-14 12:44:56 +00:00
vx - Store pointer to the link-level address right in "struct ifnet" 2005-11-11 16:04:59 +00:00
watchdog Return zero when disabling watchdog, unless any of the drivers complain. 2005-09-29 12:31:44 +00:00
wds
wi - Store pointer to the link-level address right in "struct ifnet" 2005-11-11 16:04:59 +00:00
wl - Store pointer to the link-level address right in "struct ifnet" 2005-11-11 16:04:59 +00:00
xe - Store pointer to the link-level address right in "struct ifnet" 2005-11-11 16:04:59 +00:00
zs - Use swi_remove() to teardown swi handlers rather than 2005-10-26 15:52:16 +00:00