freebsd-dev/sys/i386
Justin T. Gibbs 8ecec21da6 White space cleanup and other cosmetic style changes.
Fix a few panics during error recovery:
1) Stupid mistake in the "no SCB match handler"  where I was using the wrong
   variable (busy_scbid instead of scb_index).
2) Unbusy the target of an abort request if the command we are trying to
   abort is an untagged transaction.  If we don't, we get a fatal NO_MATCH_BUSY
   condition which "should never happen".
3) When an abort completes, turn off ahc->in_timeout or else the next timeout
   will hit the protective "scb timesout again" panic.
4) Fix a typo that caused the requeued "abort" SCB to have its TAG_ENB and
   disconnect bits to be cleared (missing ~) so that devices would complain
   about overlapped commands.

Be sure to turn off the unexpected busfree interrupt after we do a bus
reset since we are expecting the bus to go free in that case.

Return XS_TIMEOUT instead of XS_DRIVERSTUFFUP in certain scenarios.  XS_TIMEOUT
allows for retries, XS_DRIVERSTUFFUP does not.

Allow commands with SDTR and WDTR negotiation to be tagged.  The SCSI II spec
says that you probably should not do this for fear of hitting bogus devices.
The driver did this in the past for almost two years without any problem,
and not doing it causes problems during error recovery to a tag capable device
as the number of openings is higher than two and we'll start sending it
tagged commands causing "overlapped commands attempted" type errors.  The
real fix needs to happen in the generic SCSI layer which can limit the
number and type of transactions to a device during error recovery efficiently.

Give ourselves at least 100ms to perform a request sense instead of relying
on the original timeout to be long enough to complete this new command as
well as the one that generated the condition.

Removed some redundant code.
1997-02-03 02:16:16 +00:00
..
apm Make the long-awaited change from $Id$ to $FreeBSD$ 1997-01-14 07:20:47 +00:00
bios Make the long-awaited change from $Id$ to $FreeBSD$ 1997-01-14 07:20:47 +00:00
boot Make the long-awaited change from $Id$ to $FreeBSD$ 1997-01-14 07:20:47 +00:00
conf Correct the usage of fea0. It's an EISA driver now, so the ISA usage 1997-02-01 19:53:12 +00:00
eisa This mega-merge brings Matt Thomas' 960801 FDDI driver (almost) up 1997-01-17 23:54:45 +00:00
i386 Removed PG_N from here, too. Some machines don't like it and it's unnecessary. 1997-01-30 20:22:02 +00:00
ibcs2 Make the long-awaited change from $Id$ to $FreeBSD$ 1997-01-14 07:20:47 +00:00
include Deleted i386_cpus[]. i386_cpus[] is a static variable in identcpu.c. 1997-02-02 10:43:35 +00:00
isa Fixed the SMC fifo bug fix. sioopen() hung while input was streaming in 1997-02-01 16:04:16 +00:00
linux Make the long-awaited change from $Id$ to $FreeBSD$ 1997-01-14 07:20:47 +00:00
pci Sync with <pci/pcibus.h>. pcibus.c unfortunately still compiled (with 1997-01-25 18:51:01 +00:00
scsi White space cleanup and other cosmetic style changes. 1997-02-03 02:16:16 +00:00
Makefile Make the long-awaited change from $Id$ to $FreeBSD$ 1997-01-14 07:20:47 +00:00