freebsd-dev/sys/dev
Matt Jacob 5d57194434 Spring MegaChange #1.
----

Make a device for each ISP- really usable only with devfs and add an ioctl
entry point (this can be used to (re)set debug levels, reset the HBA,
rescan the fabric, issue lips, etc).

----

Add in a kernel thread for Fibre Channel cards. The purpose of this
thread is to be woken up to clean up after Fibre Channel events
block things.  Basically, any FC event that casts doubt on the
location or identify of FC devices blocks the queues. When, and
if, we get the PORT DATABASE CHANGED or NAME SERVER DATABASE CHANGED
async event, we activate the kthread which will then, in full thread
context, re-evaluate the local loop and/or the fabric. When it's
satisfied that things are stable, it can then release the blocked
queues and let commands flow again.

The prior mechanism was a lazy evaluation. That is, the next command
to come down the pipe after change events would pay the full price
for re-evaluation. And if this was done off of a softcall, it really
could hang up the system.

These changes brings the FreeBSD port more in line with the Solaris,
Linux and NetBSD ports. It also, more importantly, gets us being
more proactive about topology changes which could then be reflected
upwards to CAM so that the periph driver can be informed sooner
rather than later when things arrive or depart.

---

Add in the (correct) usage of locking macros- we now have lock transition
macros which allow us to transition from holding the CAM lock (Giant)
and grabbing the softc lock and vice versa. Switch over to having this
HBA do real locking. Some folks claim this won't be a win. They're right.
But you have to start somewhere, and this will begin to teach us how
to DTRT for HBAs, etc.

--

Start putting in prototype 2300 support.  Add back in LIP
and Loop Reset as async events that each platform will handle.
Add in another int_bogus instrumentation point.

Do some more substantial target mode cleanups.

MFC after:	8 weeks
2001-05-28 21:20:43 +00:00
..
aac Make the disk mini-layer check for and handle zero-length transfers 2001-05-06 21:55:22 +00:00
acpica Undo part of the tangle of having sys/lock.h and sys/mutex.h included in 2001-05-01 08:13:21 +00:00
advansys Restore I/O port resources to the condition before adv_isa_probe() is 2001-05-06 09:28:18 +00:00
agp Introduce a global lock for the vm subsystem (vm_mtx). 2001-05-19 01:28:09 +00:00
aha Turn on interrupt-entropy harvesting for all/any mass storage devices 2001-03-01 17:09:09 +00:00
ahb Turn on interrupt-entropy harvesting for all/any mass storage devices 2001-03-01 17:09:09 +00:00
aic Merged from sys/dev/aic/aic_isa.c revision 1.7. 2001-04-01 06:37:59 +00:00
aic7xxx ahc_eisa.c: 2001-05-15 19:41:12 +00:00
amd Move unused functions into #if 0 ... #endif. 2001-05-06 08:07:10 +00:00
amr Make the disk mini-layer check for and handle zero-length transfers 2001-05-06 21:55:22 +00:00
an Currently, each wireless networking driver has it's own control program 2001-05-26 09:27:08 +00:00
ar Move the isa parts to a separate file. 2001-04-16 13:20:39 +00:00
asr Fix probing on the alpha. It still causes the alpha to panic during 2001-04-03 00:26:34 +00:00
ata Update to use the changed ioctl interface. 2001-05-17 10:29:30 +00:00
atkbdc Send the remains (such as I have located) of "block major numbers" to 2001-03-26 12:41:29 +00:00
awi Currently, each wireless networking driver has it's own control program 2001-05-26 09:27:08 +00:00
bktr Undo part of the tangle of having sys/lock.h and sys/mutex.h included in 2001-05-01 08:13:21 +00:00
buslogic Turn on interrupt-entropy harvesting for all/any mass storage devices 2001-03-01 17:09:09 +00:00
cardbus Fix memory leaks with dev_get_children(). 2001-02-08 21:47:45 +00:00
ccd Polish error handling with biofinish(). 2001-05-08 09:10:27 +00:00
cnw Use enumeration types for CARD_SET_RES_FLAGS. 2001-05-08 23:57:32 +00:00
cs Additional enhancments to allow IBM Etherjet cards to be probed, 2001-02-23 08:08:21 +00:00
ct Added another wd33c93 based SCSI card driver which replaces the bs driver. 2001-02-27 12:34:01 +00:00
cy Remove unneeded includes of sys/ipl.h and machine/ipl.h. 2001-05-15 23:22:29 +00:00
dc Catch up to header include changes: 2001-03-28 09:17:56 +00:00
de Remove some unused stuff 2001-03-25 07:21:04 +00:00
dec Fix a botch where we wrote the year register with > 2 digits (and 2001-03-09 20:39:02 +00:00
dgb New-busify and ansify. 2001-04-14 15:32:16 +00:00
digi MALLOC -> malloc, FREE -> free 2001-05-22 18:10:57 +00:00
dpt Send the remains (such as I have located) of "block major numbers" to 2001-03-26 12:41:29 +00:00
ed Add support for Dlink DL10022 to the ed driver. This is a mii part 2001-03-03 08:31:37 +00:00
eisa Unbreak EISA. The PCI-EISA bridge bus is named eisab', not isab'. 2001-02-09 16:33:53 +00:00
en Lock down the network interface queues. The queue mutex must be obtained 2000-11-25 07:35:38 +00:00
ep Use PCCARD_CIS_xxx #defines for the table of oem ids. These usually 2001-01-21 08:15:37 +00:00
ex Mechanical change to use <sys/queue.h> macro API instead of 2001-02-04 13:13:25 +00:00
fb Send the remains (such as I have located) of "block major numbers" to 2001-03-26 12:41:29 +00:00
fdc Don't lie to diskerr() now that it listens to us. 2001-05-25 09:07:23 +00:00
fe Convert if_multiaddrs from LIST to TAILQ so that it can be traversed 2001-02-06 10:12:15 +00:00
fxp Add workaround for embedded NICs, in particular, the 815E boards. 2001-05-17 23:50:24 +00:00
hea Fix typo: seperate -> separate. 2001-02-06 11:21:58 +00:00
hfa Send the remains (such as I have located) of "block major numbers" to 2001-03-26 12:41:29 +00:00
ic Add $FreeBSD$ 2000-05-01 20:32:07 +00:00
ichsmb Catch up to header include changes: 2001-03-28 09:17:56 +00:00
ida Make the disk mini-layer check for and handle zero-length transfers 2001-05-06 21:55:22 +00:00
ie Convert if_multiaddrs from LIST to TAILQ so that it can be traversed 2001-02-06 10:12:15 +00:00
iicbus Send the remains (such as I have located) of "block major numbers" to 2001-03-26 12:41:29 +00:00
isp Spring MegaChange #1. 2001-05-28 21:20:43 +00:00
ispfw update to latest and greatest f/w 2001-02-11 03:35:45 +00:00
joy Send the remains (such as I have located) of "block major numbers" to 2001-03-26 12:41:29 +00:00
kbd Send the remains (such as I have located) of "block major numbers" to 2001-03-26 12:41:29 +00:00
lmc Fix typo: seperate -> separate. 2001-02-06 11:21:58 +00:00
lnc Use a module name of 'if_lnc' in both the PCI and ISA sections of 2001-03-18 17:44:23 +00:00
mc146818 Add missing $FreeBSD$ 2000-05-01 19:54:26 +00:00
mca - Remove an unused write_ivars function that didn't do anything anyway. 2001-01-19 09:29:34 +00:00
mcd Send the remains (such as I have located) of "block major numbers" to 2001-03-26 12:41:29 +00:00
md Acquire vm_mtx before calling vm_pager_deallocate. 2001-05-27 00:42:46 +00:00
mii Regenerate 2001-05-23 22:11:25 +00:00
mlx Make the disk mini-layer check for and handle zero-length transfers 2001-05-06 21:55:22 +00:00
mly Avoid divide-by-zero for devices that the adapter has not negotiated a 2001-04-21 04:08:26 +00:00
mse Send the remains (such as I have located) of "block major numbers" to 2001-03-26 12:41:29 +00:00
musycc Dang, I lost the sign in that brucification. DTRT with PCATCH. 2001-05-26 09:37:42 +00:00
ncv Turn on interrupt-entropy harvesting for all/any mass storage devices 2001-03-01 17:09:09 +00:00
nge Fix instance of (struct ti_softc *) that should have been 2001-05-15 22:19:50 +00:00
nmdm Send the remains (such as I have located) of "block major numbers" to 2001-03-26 12:41:29 +00:00
nsp Turn on interrupt-entropy harvesting for all/any mass storage devices 2001-03-01 17:09:09 +00:00
null Send the remains (such as I have located) of "block major numbers" to 2001-03-26 12:41:29 +00:00
ofw OpenFirmware/PowerPC loader, part 2. 2000-11-10 06:39:58 +00:00
pccard Fix the panics for real this time. When something can't be allocated, 2001-05-10 06:55:39 +00:00
pccbb Separate out pci cardbus bridge definitions to a common file for use 2001-05-25 19:12:58 +00:00
pcf Remove unneeded #include <machine/clock.h> 2000-10-15 14:19:01 +00:00
pci finally fix intr routing on alphas such as the as500 after months of 2001-05-27 22:22:03 +00:00
pcic Add IBM3765 to newcard's pcic pnp device list 2001-04-11 20:22:16 +00:00
pdq Undo part of the tangle of having sys/lock.h and sys/mutex.h included in 2001-05-01 08:13:21 +00:00
ppbus make code use strxxx() calls 2001-04-01 07:36:28 +00:00
ppc Consider that the chipset may be in ECP mode (from BIOS settings) 2001-01-25 10:51:41 +00:00
random Undo part of the tangle of having sys/lock.h and sys/mutex.h included in 2001-05-01 08:13:21 +00:00
ray Primary purpose of this commit is to enable support for the Aviator 2001-05-17 22:23:49 +00:00
rc Remove unneeded includes of sys/ipl.h and machine/ipl.h. 2001-05-15 23:22:29 +00:00
rp Send the remains (such as I have located) of "block major numbers" to 2001-03-26 12:41:29 +00:00
scd Send the remains (such as I have located) of "block major numbers" to 2001-03-26 12:41:29 +00:00
sf Big round of minor updates: 2001-02-21 20:54:22 +00:00
si Send the remains (such as I have located) of "block major numbers" to 2001-03-26 12:41:29 +00:00
sio add Dualmode Zoom/FaxModem 56K (internal) Model 2919 2001-05-26 11:17:57 +00:00
sk The sk driver developed a bug when the multicast code was changed to 2001-05-09 18:22:42 +00:00
smbus Send the remains (such as I have located) of "block major numbers" to 2001-03-26 12:41:29 +00:00
sn Convert if_multiaddrs from LIST to TAILQ so that it can be traversed 2001-02-06 10:12:15 +00:00
snc Convert if_multiaddrs from LIST to TAILQ so that it can be traversed 2001-02-06 10:12:15 +00:00
snp Convert this driver to (ab?)use line disciplines to get the input it 2001-05-22 22:13:14 +00:00
sound beginnings of virtual playback channel support 2001-05-27 17:22:00 +00:00
speaker Send the remains (such as I have located) of "block major numbers" to 2001-03-26 12:41:29 +00:00
sr Fix clock selection for X.21 interfaces. 2001-02-26 16:30:02 +00:00
stg Turn on interrupt-entropy harvesting for all/any mass storage devices 2001-03-01 17:09:09 +00:00
streams Send the remains (such as I have located) of "block major numbers" to 2001-03-26 12:41:29 +00:00
sym Correctly initialize free_ccbq so that if we fail to attach (as is 2001-04-09 05:41:41 +00:00
syscons Make the beep duration independent of HZ. 2001-05-28 21:11:38 +00:00
tdfx Send the remains (such as I have located) of "block major numbers" to 2001-03-26 12:41:29 +00:00
ti Vlan tags are 12 bits, mask off anything above since the chip doesn't 2001-05-23 19:25:14 +00:00
twe Minor updates: 2001-05-07 21:46:44 +00:00
tx Add support for SMC9432FTX card, possibly othe fiber optic SMC9432 family 2001-02-07 20:11:02 +00:00
usb Remove the empty uscannerioctl() and use noioctl() instead. 2001-05-23 17:51:43 +00:00
vinum Change #if VINUMDEBUG to #ifdef VINUMDEBUG. This is a flag, not a variable. 2001-05-23 23:24:05 +00:00
vr Close PR 22208: bring chip out of suspend mode, because Windows might 2001-05-14 19:13:02 +00:00
vx When I converted this driver, I neglected to deal with packet alignment. 2000-12-07 23:30:51 +00:00
wds Turn on interrupt-entropy harvesting for all/any mass storage devices 2001-03-01 17:09:09 +00:00
wi Currently, each wireless networking driver has it's own control program 2001-05-26 09:27:08 +00:00
wl Convert if_multiaddrs from LIST to TAILQ so that it can be traversed 2001-02-06 10:12:15 +00:00
xe Convert if_multiaddrs from LIST to TAILQ so that it can be traversed 2001-02-06 10:12:15 +00:00