freebsd-dev/sys/cam
Scott Long ef3cf714a4 Provide locking for the ccb_bioq. This allows xpt_done() to be called without
Giant held.  In camisr(), move the ccb_bioq elements to a temporary local list
and then process the elements off of that list.  This enables the list to be
processed by only taking the ccb_bioq_lock once and only for a very short
time.

ccb_bioq_lock is a leaf mutex, so it's fine to call xpt_done() with other
locks held.  This is just a very minor step in the work to lock CAM, but
it allows us to avoid some messy locking/unlock dances in certain drivers.
2005-02-09 11:44:15 +00:00
..
scsi Boot away another stackgap (one of the lest ones in linuxlator/i386) by 2005-01-30 08:12:37 +00:00
cam_ccb.h Start each of the license/copyright comments with /*- 2005-01-05 22:34:37 +00:00
cam_debug.h Start each of the license/copyright comments with /*- 2005-01-05 22:34:37 +00:00
cam_periph.c Start each of the license/copyright comments with /*- 2005-01-05 22:34:37 +00:00
cam_periph.h Start each of the license/copyright comments with /*- 2005-01-05 22:34:37 +00:00
cam_queue.c Start each of the license/copyright comments with /*- 2005-01-05 22:34:37 +00:00
cam_queue.h Start each of the license/copyright comments with /*- 2005-01-05 22:34:37 +00:00
cam_sim.c Start each of the license/copyright comments with /*- 2005-01-05 22:34:37 +00:00
cam_sim.h Start each of the license/copyright comments with /*- 2005-01-05 22:34:37 +00:00
cam_xpt_periph.h Start each of the license/copyright comments with /*- 2005-01-05 22:34:37 +00:00
cam_xpt_sim.h Start each of the license/copyright comments with /*- 2005-01-05 22:34:37 +00:00
cam_xpt.c Provide locking for the ccb_bioq. This allows xpt_done() to be called without 2005-02-09 11:44:15 +00:00
cam_xpt.h Start each of the license/copyright comments with /*- 2005-01-05 22:34:37 +00:00
cam.c Start each of the license/copyright comments with /*- 2005-01-05 22:34:37 +00:00
cam.h Start each of the license/copyright comments with /*- 2005-01-05 22:34:37 +00:00