summaryrefslogtreecommitdiff
path: root/sys/dev/mpt
diff options
context:
space:
mode:
authorMatt Jacob <mjacob@FreeBSD.org>2010-04-29 19:11:25 +0000
committerMatt Jacob <mjacob@FreeBSD.org>2010-04-29 19:11:25 +0000
commit230a615521ef83aa32605d80b1f01be66c9878f6 (patch)
tree4e420a29c968823f806b5b28022ecfada6c63400 /sys/dev/mpt
parent140095c1b8fe58bd4239a46c31b25a396fa4f291 (diff)
Notes
Diffstat (limited to 'sys/dev/mpt')
-rw-r--r--sys/dev/mpt/mpt_cam.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/dev/mpt/mpt_cam.c b/sys/dev/mpt/mpt_cam.c
index 6ae6bbedf098..88bc90c96c55 100644
--- a/sys/dev/mpt/mpt_cam.c
+++ b/sys/dev/mpt/mpt_cam.c
@@ -1208,14 +1208,18 @@ mpt_cam_detach(struct mpt_softc *mpt)
if (mpt->sim != NULL) {
xpt_free_path(mpt->path);
+ MPT_LOCK(mpt);
xpt_bus_deregister(cam_sim_path(mpt->sim));
+ MPT_UNLOCK(mpt);
cam_sim_free(mpt->sim, TRUE);
mpt->sim = NULL;
}
if (mpt->phydisk_sim != NULL) {
xpt_free_path(mpt->phydisk_path);
+ MPT_LOCK(mpt);
xpt_bus_deregister(cam_sim_path(mpt->phydisk_sim));
+ MPT_UNLOCK(mpt);
cam_sim_free(mpt->phydisk_sim, TRUE);
mpt->phydisk_sim = NULL;
}