Fix an issue where CAM would attempt to illegally get a lockmgr() lock
commit92cacebe0823f8e27e92a59edb9bd7cab633a183
authorMatthew Dillon <dillon@dragonflybsd.org>
Sun, 29 Jun 2008 19:15:34 +0000 (29 19:15 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Sun, 29 Jun 2008 19:15:34 +0000 (29 19:15 +0000)
tree4220bd01a926a0870a7798a07a2940fe1ccce57a
parent2b62f5a7c8fbe843e7ac3b22483e2645abfc5068
Fix an issue where CAM would attempt to illegally get a lockmgr() lock
from an interrupt via xpt_done().  Use a spin lock instead.

Fix an issue where camisr_runqueue() was not protecting sim->sim_doneq
which could then race against an interrupt via xpt_done() and corrupt
the list.
sys/bus/cam/cam_sim.c
sys/bus/cam/cam_sim.h
sys/bus/cam/cam_xpt.c