Go to file
Sean Bruno 3042cc43f0 Some updates and bug squashing in the firewire stack.
Move the interupt handler to a driver_intr_t type function as it was trying
to do way to much for a lightweight filter interrupt function.

Introduce much more locking around fc->mtx.  Tested this for lock reversals
and other such lockups.  Locking seems to be working better, but there
is much more to do with regard to locking.  The most significant lock is
in the BUS RESET handler.  It was possible, before this checkin, to set
a bus reset via "fwcontrol -r" and have the BUS RESET handler fire before
the code responsible for asserting BUS RESET was complete.  This locking
fixes that issue.

Move some of the memory allocations in the fc struct to the attach function
in firewire.c

Rework the businfo.generation indicator to be merely a on/off bit now.
It's purpose according to spec is to notify the bus that the config ROM
has changed.  That's it.

Catch and squash a possible panic in SBP where in the SBP_LOCK was held
during a possible error case.  The error handling code would definitely
panic as it would try to acquire the SBP_LOCK on entrance.

Catch and squash a camcontrol/device lockup when firewire drives go away.
When a firewire device was powered off or disconnected from the firewire
bus, a "camcontrol rescan all" would hang trying to poll removed devices
as they were not properly detached.  Don't do that.

Approved by:	scottl
MFC after:	2 weeks
2009-02-01 23:28:52 +00:00
bin Before this fix, pax would stop the restore sequence for 2009-02-01 06:15:46 +00:00
cddl Correct the sense of the "use32" terenary operator so that it uses 2009-01-16 22:16:54 +00:00
contrib - Remove non-existing reference 2009-01-30 15:43:55 +00:00
crypto Prevent cross-site forgery attacks on lukemftpd(8) due to splitting 2009-01-07 20:17:55 +00:00
etc Spawn one fewer shells on startup. We don't use dhcp_interfaces at 2009-01-30 03:41:45 +00:00
games netcat is "now" in base, so point people at nc(1) instead of the port. 2009-01-12 19:17:43 +00:00
gnu For files not named on the command line, only the basename is compared 2009-01-30 00:22:08 +00:00
include Also un-split _PATH_STDPATH for grepability. 2009-02-01 00:50:46 +00:00
kerberos5
lib Permit ` as a pad character in the filename table. 2009-02-01 02:33:02 +00:00
libexec o Fix typo: indentical -> identical. 2009-01-30 09:42:25 +00:00
release Note new fetch if-modified-since support in the userland section, and 2009-01-09 03:52:12 +00:00
rescue
sbin put the altq-related functions into a separate file. 2009-02-01 16:00:49 +00:00
secure
share Committo ergo sum. 2009-01-30 22:00:31 +00:00
sys Some updates and bug squashing in the firewire stack. 2009-02-01 23:28:52 +00:00
tools Test wprintf() in addition to printf(). 2009-01-31 18:32:39 +00:00
usr.bin Remove the single global unlocked route cache ip6_forward_rt 2009-02-01 21:11:08 +00:00
usr.sbin Run with -B and just .POSIX. 2009-01-31 07:03:36 +00:00
COPYRIGHT Bump the odometer of the years. A little early this year for 7.1R. 2008-12-30 04:46:25 +00:00
LOCKS
MAINTAINERS
Makefile
Makefile.inc1 Implement an idea from Sam Leffler: 2009-01-23 18:23:16 +00:00
ObsoleteFiles.inc Add obsolete files after tzdata2009a and file 4.26 imports 2009-01-25 19:03:30 +00:00
README
UPDATING Remove the single global unlocked route cache ip6_forward_rt 2009-02-01 21:11:08 +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 ``world''
target should only be used in cases where the source tree has not
changed from the currently running version.  See:
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/makeworld.html
for more information, including setting make(1) variables.

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.

rescue		Build system for statically linked /rescue utilities.

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