diff options
author | Scott Long <scottl@FreeBSD.org> | 2007-11-05 11:22:18 +0000 |
---|---|---|
committer | Scott Long <scottl@FreeBSD.org> | 2007-11-05 11:22:18 +0000 |
commit | 762d6411cf512409e42fe8c66aa54c8975725f76 (patch) | |
tree | 2bc8eef952a37e998b426524e91c268d7dddfde4 /sys | |
parent | aefac17759a536e61aa4d1e9289f10a2d144da00 (diff) | |
download | src-762d6411cf512409e42fe8c66aa54c8975725f76.tar.gz src-762d6411cf512409e42fe8c66aa54c8975725f76.zip |
Add missing locking for SBus controllers.
Notes
Notes:
svn path=/head/; revision=173359
Diffstat (limited to 'sys')
-rw-r--r-- | sys/dev/isp/isp_sbus.c | 5 |
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: |