freebsd-skq/sys/dev/firewire
sbruno 70a17b78b0 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
..
00README
firewire_phy.h
firewire.c Some updates and bug squashing in the firewire stack. 2009-02-01 23:28:52 +00:00
firewire.h Replace all calls to minor() with dev2unit(). 2008-09-27 08:51:18 +00:00
firewirereg.h Protect transaction labels by its own lock to reduce lock contention. 2007-07-20 03:42:57 +00:00
fwcrom.c
fwdev.c Replace all calls to minor() with dev2unit(). 2008-09-27 08:51:18 +00:00
fwdma.c MFp4: MPSAFE firewire stack. 2007-06-06 14:31:36 +00:00
fwdma.h
fwmem.c MFp4: MPSAFE firewire stack. 2007-06-06 14:31:36 +00:00
fwmem.h
fwohci_pci.c Some updates and bug squashing in the firewire stack. 2009-02-01 23:28:52 +00:00
fwohci.c Some updates and bug squashing in the firewire stack. 2009-02-01 23:28:52 +00:00
fwohcireg.h
fwohcivar.h Some updates and bug squashing in the firewire stack. 2009-02-01 23:28:52 +00:00
fwphyreg.h
iec13213.h
iec68113.h
if_fwe.c Replaced the misleading uses of a historical artefact M_TRYWAIT with M_WAIT. 2008-03-25 09:39:02 +00:00
if_fwevar.h MFp4: MPSAFE firewire stack. 2007-06-06 14:31:36 +00:00
if_fwip.c Replaced the misleading uses of a historical artefact M_TRYWAIT with M_WAIT. 2008-03-25 09:39:02 +00:00
if_fwipvar.h MFp4: MPSAFE firewire stack. 2007-06-06 14:31:36 +00:00
sbp_targ.c Prepare for future integration between CAM and newbus. xpt_bus_register 2007-06-17 05:55:54 +00:00
sbp.c Some updates and bug squashing in the firewire stack. 2009-02-01 23:28:52 +00:00
sbp.h