summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorscottl <scottl@FreeBSD.org>2007-11-05 11:22:18 +0000
committerscottl <scottl@FreeBSD.org>2007-11-05 11:22:18 +0000
commitf3f033b9b90ea07350fbe7483af3d9636cb31d1d (patch)
tree2bc8eef952a37e998b426524e91c268d7dddfde4 /sys
parent8cd6397d8ad47472f70ab5982dd0b99dc35d0c1f (diff)
downloadFreeBSD-src-f3f033b9b90ea07350fbe7483af3d9636cb31d1d.zip
FreeBSD-src-f3f033b9b90ea07350fbe7483af3d9636cb31d1d.tar.gz
Add missing locking for SBus controllers.
Diffstat (limited to 'sys')
-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 cf6ee28..839d7eb 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:
OpenPOWER on IntegriCloud