1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-13 10:02:38 +00:00
Mirror of the FreeBSD src repository https://git.FreeBSD.org/src.git .
Go to file
Justin T. Gibbs dcc9985adf Fix a race condition in the flushing of commands that
have completed across the bus but not to the host before
processing of an exception condition (busfree, bus reset,
etc.).  When flushing the controller of completed commands,
we also look for packetized commands that have completed
with good status and are stored in the "good status fifo".
The hardware will post to the good status fifo even if
data for that command is still active in a FIFO.  In
one particular failure case, a command outstanding on the
bus reconnected, transferred data into a FIFO, and provided
good status while the host driver was processing an expected
busfree event (PPR message negotiation).  This resulted in
an entry in the good status fifo that we completed, but
since the sequencer was paused, the data in the data FIFO
for this command had never been transferred to the host.
Once the busfree processing was complete, the sequencer
was unpaused, and the data completed its transfer to the
host.  In some instances, the client for the data was notified
of the completion and attempted to view the data before
it arrived.  This case only occurred during FreeBSD's
multi-target probe of the SCSI bus while some devices are
negotiating to go packetized and some devices are already
running in packetized.

The fix is to run and FIFOs active with a context in the
good status fifo to completion before completing the command
to the SCSI layer.  This requies duplicating the FIFO rundown
operations in the host driver that would usually be handled
by the firmware, but there is no other alternative.

Don't blindly shutdown the SCB dma engine when restarting
the sequencer.  We may be killing an operation that is
not supposed to be cancelled.  The cases where we need to
shutdown these dma engines are already handled elsewhere in
the driver.

Fix a few more ahd_in?() -> ahd_in?_scbram() instances.
2003-06-28 04:46:54 +00:00
bin support saving both user/group and permissions on symlinks (from PR) 2003-06-22 07:02:17 +00:00
contrib Remove bit about _THREAD_SAFE. deischen committed a change to stdio.h 2003-06-25 16:12:05 +00:00
crypto This commit was generated by cvs2svn to compensate for changes in r116791, 2003-06-24 19:30:44 +00:00
etc - Add a software watchdog facility. 2003-06-26 09:50:52 +00:00
games Handle 12-hour clocks properly: when the time is 00:00-00:59, adjust the 2003-06-23 16:01:11 +00:00
gnu Add missing quote after cut/paste error in last commit. :-( 2003-06-26 20:34:08 +00:00
include Move _PATH_LOCALE to place where it really belongs to (rune.h -> paths.h) 2003-06-25 22:28:33 +00:00
kerberos5 s/USE_OPENLDAP/WITH_OPENLDAP/ per request from kris. 2003-06-18 14:23:44 +00:00
lib Create compatibility links for libc_r on ia64 to prevent build-time 2003-06-27 18:07:47 +00:00
libexec Don't declare unneeded extern variables, 2003-06-21 10:45:38 +00:00
release Merge the following from the English version: 2003-06-27 17:15:20 +00:00
sbin remove extra whitespace and blank lines 2003-06-27 17:18:14 +00:00
secure Fix for the NO_OPENSSL case. 2003-06-08 08:24:07 +00:00
share typo 2003-06-26 23:48:56 +00:00
sys Fix a race condition in the flushing of commands that 2003-06-28 04:46:54 +00:00
tools amd64 is actually stable enough for the regular -CURRENT tinderbox now. 2003-06-20 16:57:37 +00:00
usr.bin Finish the deorbital burn of the i386-only a.out toolchain. 2003-06-27 03:59:46 +00:00
usr.sbin When pointing users at mount_devfs to populate the /dev of a jail, 2003-06-26 19:04:15 +00:00
COPYRIGHT
MAINTAINERS Also remove the ones that snuck in at the bottom. 2003-06-16 16:12:05 +00:00
Makefile Do the upgrade checks quietly. 2003-06-22 21:56:22 +00:00
Makefile.inc1 - Fix a typo. 2003-06-28 04:46:45 +00:00
README
UPDATING Add a retrospective entry about how having installed a broken sed(1) 2003-06-13 20:05:46 +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/doc/en_US.ISO8859-1/books/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 might need to build
world before.  More information is available in the handbook.

The sample kernel configuration files reside in the sys/<arch>/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.

kerberos5	Kerberos5 (Heimdal) 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/doc/en_US.ISO8859-1/books/handbook/synching.html