freebsd-dev/sys/i386
Justin T. Gibbs c6baec432a Don't arbitrarily set SCSI_NOSLEEP. It is now handled correctly by the
higher level scsi code.

Spls should never be conditionalized, so don't do so here.

Restructure the get_scb routine so that we can't get into an infinite
loop if the ccbs are exhausted and we are are called with SCSI_NOSLEEP set.

Other driver maintainer's that based their scb allocation routines on Julian's
code should look at these changes and implement them for their driver.

The aic7xxx driver inspired these changes because early revs of the
aic7770 chips have so few SCBs that you can actually run out.  If you
have a rev C or aic7770 (as is reported by the driver probe) and had more
than 2 drives, you could get into an infinite loop when using up all of
the SCBs.  Since the driver will only allow two SCBs per device and I
only had two devices, I never saw this problem on my Rev C card.

Bzero only 19 bytes of the scb instead of 2k (ack!).  This was a hold
over from when a struct SCB only contained the information downloaded
to the board, but we now store kernel driver data in there as well.  This
greatly lowers the overhead for small transactions (I get ~1MB/sec for
dds with a 512 byte block size).

Submitted by: John Dyson with the aic7xxx specific optimization by me
1995-04-23 22:04:58 +00:00
..
apm This is the latest version of the APM stuff from HOSOKAWA, I have looked 1995-02-17 02:22:57 +00:00
bios This is the latest version of the APM stuff from HOSOKAWA, I have looked 1995-02-17 02:22:57 +00:00
boot Submitted by: bde@freebsd.org 1995-04-21 22:20:34 +00:00
conf Substantially clean up LINT and add `fe'. 1995-04-23 18:30:27 +00:00
eisa files for the eisa specific autoconfiguration.. 1995-04-23 08:55:43 +00:00
i386 Declare the console switch functions completely. 1995-04-23 12:55:55 +00:00
ibcs2 Some long-waiting fixes for the COFF module. They silence compiler 1995-04-08 15:52:30 +00:00
include Update pcvt to 3.20 b24 1995-04-08 15:49:25 +00:00
isa Don't arbitrarily set SCSI_NOSLEEP. It is now handled correctly by the 1995-04-23 21:58:35 +00:00
pci Correct pcibus_setup() to return as soon as one test succeeds. 1995-03-22 21:35:39 +00:00
scsi Don't arbitrarily set SCSI_NOSLEEP. It is now handled correctly by the 1995-04-23 22:04:58 +00:00
Makefile Removed all patch kit headers, sccsid and rcsid strings, put $Id$ in, some 1993-10-16 19:17:18 +00:00