freebsd kernel with SKQ
Go to file
Justin T. Gibbs 70351c9a14 Store a pointer to our softc in the kernel's SCB structure. In the
past we stored this data in the CCB and attained the CCB via a pointer
in the SCB.  In ahc_timeout(), however, the timedout SCB may have already
been completed (inherent race), meaning that the CCB could have been recycled,
and the ahc pointer reset.

Clean up the logic in ahc_search_qinfifo that deals with the busy device
table.  For some reason it assumed that the only valid time to search
to see if additional lun entries should be checked was if lun 0 matched.
Now we properly itterate through the necessary luns.  The busy device
table is used to detect invalid reselections, so a device would have had
to perform an unexpected reselection for this to cause problems.  Further,
all luns are collapsed to a single entry unless we have external ram
with large SCBs (3940AU models) so the chance of this happening was
rather remote.

Clean up the logic for dealing with the untagged queues.  We now set a
flag in the SCB that indicates that it is on the untagged queue instead
of inferring this from the type and setup of the CCB pased into us by
CAM.

In ahc_timeout(), don't print the path of the SCB until the controller
is paused and we are sure that it has not completed yet.  This, in
conjunction with referencing the ahc pointer in the SCB rather than
the CCB in the SCB avoids panics in the case of a timedout scb completing
just before the timeout handler runs.  This turns out to be guaranteed
if interrupt delivery is failing, as we run our interrupt handler to
flush any "just missed events" when a timeout occurs.  Mention the
likelyhood of broken interrupts if a timedout SCB is completed by
our call to ahc_intr().
2000-10-11 23:46:34 +00:00
bin Style fixes 2000-10-11 05:04:21 +00:00
contrib Cleaned up the .St macro. 2000-10-11 09:51:27 +00:00
crypto Fix a few style oddities. 2000-09-10 18:04:12 +00:00
etc Disable the SMTP EXPN and VRFY commands by default to prevent information 2000-10-10 18:10:38 +00:00
games Add an amusing spoonerism. 2000-10-10 01:55:08 +00:00
gnu Regenerated. There are a bunch of changes from this round of ./configure 2000-10-02 07:27:50 +00:00
include Cleanup of bitstring.h: 2000-10-09 12:34:51 +00:00
kerberos5 Fix ordering for real this time. 2000-08-30 03:44:30 +00:00
kerberosIV Remove the last vestiges of libRSAglue now that it's an empty stub. 2000-03-11 22:34:10 +00:00
lib Fix a buildworld hiccup with build-tools that wasn't present in standalone 2000-10-11 11:25:47 +00:00
libexec Style fixes 2000-10-11 05:04:21 +00:00
release Note Ports Collection restructuring, new make(1) variable substitution 2000-10-10 22:31:55 +00:00
sbin Reset globals for every new command read from preprocessed file. 2000-10-11 13:02:30 +00:00
secure With apoligies to Greg Shapiro, fix the world. The previous commit 2000-10-11 12:19:42 +00:00
share Add `isoC-99' to the list of availble abbreviations. 2000-10-11 19:30:41 +00:00
sys Store a pointer to our softc in the kernel's SCB structure. In the 2000-10-11 23:46:34 +00:00
tools Use "make LINT" to create our LINT config 2000-09-25 12:40:39 +00:00
usr.bin Fix man page installation 2000-10-11 04:53:30 +00:00
usr.sbin With apoligies to Greg Shapiro, fix the world. The previous commit 2000-10-11 12:19:42 +00:00
COPYRIGHT Update to add the July 22, 1999 addendum. 1999-09-05 21:33:47 +00:00
Makefile Pass the reinstallkernel target through from Makefile to Makefile.inc1. 2000-09-19 11:15:40 +00:00
Makefile.inc1 This is really gross. 2000-09-18 03:35:49 +00:00
Makefile.upgrade $Id$ -> $FreeBSD$ 1999-08-28 01:35:59 +00:00
README Slightly improve the description of "crypto". "DES" is a subset of 2000-08-31 17:59:01 +00:00
UPDATING rm miniperl && cd /usr/ports && cvs update -PAd now recommended 2000-10-09 03:56:39 +00:00

This is the top level of the FreeBSD source directory.  This file
was last revised on:
$FreeBSD$

For copyright information, please see the file COPYRIGHT in this
directory (additional copyright information also exists for some
sources in this tree - please see the specific source directories for
more information).

The Makefile in this directory supports a number of targets for
building components (or all) of the FreeBSD source tree, the most
commonly used one being ``world'', which rebuilds and installs
everything in the FreeBSD system from the source tree except the
kernel, the kernel-modules and the contents of /etc.  The
``buildkernel'' and ``installkernel'' targets build and install
the kernel and the modules (see below).  Please see the top of
the Makefile in this directory for more information on the
standard build targets and compile-time flags.

Building a kernel is a somewhat more involved process, documentation
for which can be found at:
   http://www.freebsd.org/handbook/kernelconfig.html
And in the config(8) man page.
Note: If you want to build and install the kernel with the
``buildkernel'' and ``installkernel'' targets, you have to build
world before.  More information is available in the handbook.

The sample kernel configuration files reside in the sys/i386/conf
sub-directory (assuming that you've installed the kernel sources), the
file named GENERIC being the one used to build your initial installation
kernel.  The file NOTES contains entries and documentation for all possible
devices, not just those commonly used.  It is the successor of the ancient
LINT file, but in contrast to LINT, it is not buildable as a kernel but a
pure reference and documentation file.


Source Roadmap:
---------------
bin		System/User commands.

contrib		Packages contributed by 3rd parties.

crypto		Cryptography stuff (see crypto/README).

etc		Template files for /etc

games		Amusements.

gnu		Various commands and libraries under the GNU Public License.
		Please see gnu/COPYING* for more information.

include		System include files.

kerberosIV	Kerberos package.

lib		System libraries.

libexec		System daemons.

release		Release building Makefile & associated tools.

sbin		System commands.

secure		Cryptographic libraries and commands.

share		Shared resources.

sys		Kernel sources.

tools		Utilities for regression testing and miscellaneous tasks.

usr.bin		User commands.

usr.sbin	System administration commands.


For information on synchronizing your source tree with one or more of
the FreeBSD Project's development branches, please see:

  http://www.freebsd.org/handbook/synching.html