aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorScott Long <scottl@FreeBSD.org>2007-11-05 11:22:18 +0000
committerScott Long <scottl@FreeBSD.org>2007-11-05 11:22:18 +0000
commit762d6411cf512409e42fe8c66aa54c8975725f76 (patch)
tree2bc8eef952a37e998b426524e91c268d7dddfde4
parentaefac17759a536e61aa4d1e9289f10a2d144da00 (diff)
downloadsrc-762d6411cf512409e42fe8c66aa54c8975725f76.tar.gz
src-762d6411cf512409e42fe8c66aa54c8975725f76.zip
Add missing locking for SBus controllers.
Notes
Notes: svn path=/head/; revision=173359
-rw-r--r--sys/dev/isp/isp_sbus.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/sys/dev/isp/isp_sbus.c b/sys/dev/isp/isp_sbus.c
index cf6ee2841aa4..839d7eb5f461 100644
--- a/sys/dev/isp/isp_sbus.c
+++ b/sys/dev/isp/isp_sbus.c
@@ -327,21 +327,26 @@ isp_sbus_attach(device_t dev)
/*
* Make sure we're in reset state.
*/
+ ISP_LOCK(isp);
isp_reset(isp);
if (isp->isp_state != ISP_RESETSTATE) {
isp_uninit(isp);
+ ISP_UNLOCK(isp);
goto bad;
}
isp_init(isp);
if (isp->isp_role != ISP_ROLE_NONE && isp->isp_state != ISP_INITSTATE) {
isp_uninit(isp);
+ ISP_UNLOCK(isp);
goto bad;
}
isp_attach(isp);
if (isp->isp_role != ISP_ROLE_NONE && isp->isp_state != ISP_RUNSTATE) {
isp_uninit(isp);
+ ISP_UNLOCK(isp);
goto bad;
}
+ ISP_UNLOCK(isp);
return (0);
bad: