Date: Wed, 9 Feb 2005 11:44:15 +0000 (UTC) From: Scott Long <scottl@FreeBSD.org> To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/cam cam_xpt.c Message-ID: <200502091144.j19BiF4l073110@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
scottl 2005-02-09 11:44:15 UTC FreeBSD src repository Modified files: sys/cam cam_xpt.c Log: 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. Revision Changes Path 1.149 +22 -5 src/sys/cam/cam_xpt.c
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200502091144.j19BiF4l073110>