freebsd-nq/sys
Justin T. Gibbs 72df3c5621 Sync Perforce IDs, add tranceiver state change support, and correct
numerous error recovery buglets.

Many thanks to Tor Egge for his assistance in diagnosing problems with
the error recovery code.

aic7xxx.c:
	Report missed bus free events using their own sequencer interrupt
	code to avoid confusion with other "bad phase" interrupts.

	Remove a delay used in debugging.  This delay could only be hit
	in certain, very extreme, error recovery scenarios.

	Handle transceiver state changes correctly.  You can now
	plug an SE device into a hot-plug LVD bus without hanging
	the controller.

	When stepping through a critical section, panic if we step
	more than a reasonable number of times.

	After a bus reset, disable bus reset interupts until we either
	our first attempt to (re)select another device, or another device
	attemps to select us.  This removes the need to busy wait in
	kernel for the scsi reset line to fall yet still ensures we
	see any reset events that impact the state of either our initiator
	or target roles.  Before this change, we had the potential of
	servicing a "storm" of reset interrupts if the reset line was
	held for a significant amount of time.

	Indicate the current sequencer address whenever we dump the
	card's state.

aic7xxx.reg:
	Transceiver state change register definitions.

	Add the missed bussfree sequencer interrupt code.

	Re-enable the scsi reset interrupt if it has been
	disabled before every attempt to (re)select a device
	and when we have been selected as a target.

	When being (re)selected, check to see if the selection
	dissappeared just after we enabled our bus free interrupt.
	If the bus has gone free again, go back to the idle loop
	and wait for another selection.

	Note two locations where we should change our behavior
	if ATN is still raised.  If ATN is raised during the
	presentation of a command complete or disconnect message,
	we should ignore the message and expect the target to put
	us in msgout phase.  We don't currently do this as it
	requires some code re-arrangement so that critical sections
	can be properly placed around our handling of these two
	events.  Otherwise, we cannot guarantee that the check of
	ATN is atomic relative to our acking of the message in
	byte (the kernel could assert ATN).

	Only set the IDENTIFY_SEEN flag after we have settled
	on the SCB for this transaction.  The kernel looks at
	this flag before assuming that SCB_TAG is valid.  This
	avoids confusion during certain types of error recovery.

	Add a critical section around findSCB.  We cannot allow
	the kernel to remove an entry from the disconnected
	list while we are traversing it.  Ditto for get_free_or_disc_scb.

aic7xxx_freebsd.c:
	Only assume that SCB_TAG is accurate if IDENTIFY_SEEN is
	set in SEQ_FLAGS.

	Fix a typo that caused us to execute some code for the
	non-SCB paging case when paging SCBs.  This only occurred
	during error recovery.
2000-11-10 20:13:41 +00:00
..
alpha Fix typo in END macro (END'ed enable twice) 2000-11-09 17:01:21 +00:00
amd64 Make MINSIGSTKSZ machine dependent, and have the sigaltstack 2000-11-09 08:25:48 +00:00
boot OpenFirmware/PowerPC loader, part 2. 2000-11-10 06:39:58 +00:00
cam Add special quirk for this ancient Viper drive. This is all creeping 2000-11-08 18:37:12 +00:00
coda Give vop_mmap an untimely death. The opportunity to give it a timely 2000-11-01 17:57:24 +00:00
compat Make MINSIGSTKSZ machine dependent, and have the sigaltstack 2000-11-09 08:25:48 +00:00
compile
conf Farewell our code. We will switch acpica code from Intel. 2000-11-09 05:09:52 +00:00
contrib/dev We should include <machine/stdarg.h> not <stdarg.h> 2000-10-28 08:32:43 +00:00
crypto Initial import of AES algorithm code (aka Rijndael) from KAME. 2000-10-30 11:03:32 +00:00
ddb Previous commit changing SYSCTL_HANDLER_ARGS violated KNF. 2000-07-04 11:25:35 +00:00
dev Sync Perforce IDs, add tranceiver state change support, and correct 2000-11-10 20:13:41 +00:00
fs More paranoia against overflows 2000-11-08 21:53:05 +00:00
geom Avoid the modules madness I inadvertently introduced by making the 2000-09-02 19:17:34 +00:00
gnu Quick fix for not writing group descriptor group, inode bitmaps or 2000-11-10 14:54:15 +00:00
i4b Fix i4b netgraph interface to not kernel panic at boot time 2000-11-09 12:27:31 +00:00
i386 Make MINSIGSTKSZ machine dependent, and have the sigaltstack 2000-11-09 08:25:48 +00:00
ia64 Make MINSIGSTKSZ machine dependent, and have the sigaltstack 2000-11-09 08:25:48 +00:00
isa Ignore resources with a size of 0, as these are disabled (and we don't 2000-11-07 00:03:33 +00:00
isofs/cd9660 Weaken a bogus dependency on <sys/proc.h> in <sys/buf.h> by #ifdef'ing 2000-10-29 14:54:55 +00:00
kern Implement a trivial but effective interface for obtaining the kernel's 2000-11-09 10:21:23 +00:00
libkern Fix compilation of profiled kernels by including <machine/lock.h> 2000-10-14 08:34:27 +00:00
miscfs More paranoia against overflows 2000-11-08 21:53:05 +00:00
modules The vortex driver can be compiled as a KLD now. The EISA attachment 2000-11-07 01:03:23 +00:00
msdosfs Weaken a bogus dependency on <sys/proc.h> in <sys/buf.h> by #ifdef'ing 2000-10-29 14:54:55 +00:00
net Make compilable. if_fddisubr.c depended on sys/malloc.h by my 2000-11-04 14:21:23 +00:00
netatalk Move suser() and suser_xxx() prototypes and a related #define from 2000-10-29 16:06:56 +00:00
netatm Add back some #include <sys/systm.h> which were needed when <sys/ktr.h> 2000-10-30 20:37:01 +00:00
netgraph Swap the order of two tags in the pppoe PADI and PADS packets 2000-10-31 14:40:23 +00:00
netinet Fixed the security breach I introduced in rev 1.145. 2000-11-07 09:20:32 +00:00
netinet6 backout my previous commit (KAME PR 296). foo != TUNNEL will 2000-11-09 17:55:17 +00:00
netipx Move suser() and suser_xxx() prototypes and a related #define from 2000-10-29 16:06:56 +00:00
netkey Revert previous commit after discussion with phk. 2000-10-30 09:13:46 +00:00
netnatm Back out the previous change to the queue(3) interface. 2000-05-26 02:09:24 +00:00
netncp Make malloc use M_ZERO in some more locations. 2000-10-29 16:14:28 +00:00
netns Clean up some loose ends in the network code, including the X.25 and ISO 2000-02-13 03:32:07 +00:00
nfs Give vop_mmap an untimely death. The opportunity to give it a timely 2000-11-01 17:57:24 +00:00
nfsclient Give vop_mmap an untimely death. The opportunity to give it a timely 2000-11-01 17:57:24 +00:00
nfsserver Remove unneeded #include <sys/proc.h> lines. 2000-10-29 13:57:19 +00:00
ntfs Give vop_mmap an untimely death. The opportunity to give it a timely 2000-11-01 17:57:24 +00:00
nwfs v_interlock is a mutex now, not simple lock. 2000-11-04 02:42:11 +00:00
pc98 Merged from the following changes. 2000-11-05 14:31:19 +00:00
pccard fix type check in pccard_beep_select 2000-11-01 00:37:34 +00:00
pci Add missing delay after card reset. 2000-11-09 17:25:49 +00:00
posix4 Add $FreeBSD$ 2000-05-01 20:32:07 +00:00
powerpc Beginnings of the powerpc machine dependant includes. 2000-11-10 08:06:50 +00:00
rpc
sys Fix a reference to ``Standard C'' to refer specifically to the 1990 version; 2000-11-09 15:42:05 +00:00
tools remove crufty exec stuff, perl is in the base system 2000-06-27 19:09:55 +00:00
ufs Fixed breakage of mknod() in rev.1.48 of ext2_vnops.c and rev.1.126 of 2000-11-04 08:10:56 +00:00
vm Clear the MAP_ENTRY_USER_WIRED flag from cloned vm_map entries. 2000-11-02 21:38:18 +00:00
Makefile I should know better than to touch this without testing a 'make release' 2000-08-24 18:53:09 +00:00