summaryrefslogtreecommitdiffstats
path: root/sys/dev/isp/isp_freebsd.c
diff options
context:
space:
mode:
authormjacob <mjacob@FreeBSD.org>2007-05-13 17:45:00 +0000
committermjacob <mjacob@FreeBSD.org>2007-05-13 17:45:00 +0000
commit93b09939f6cbd94f0ab51bee21ffdbf29ec46995 (patch)
treee6e4e61851f31b351e602f6cd2531598cdd153f6 /sys/dev/isp/isp_freebsd.c
parent48b37b43f02e8825d9d0a98302c35d747c139192 (diff)
downloadFreeBSD-src-93b09939f6cbd94f0ab51bee21ffdbf29ec46995.zip
FreeBSD-src-93b09939f6cbd94f0ab51bee21ffdbf29ec46995.tar.gz
Temp workaround for config_intrhook_establish running the hook
right away.
Diffstat (limited to 'sys/dev/isp/isp_freebsd.c')
-rw-r--r--sys/dev/isp/isp_freebsd.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/dev/isp/isp_freebsd.c b/sys/dev/isp/isp_freebsd.c
index 8e5642f..89f45aa 100644
--- a/sys/dev/isp/isp_freebsd.c
+++ b/sys/dev/isp/isp_freebsd.c
@@ -146,12 +146,15 @@ isp_attach(ispsoftc_t *isp)
isp->isp_osinfo.ehook.ich_func = isp_intr_enable;
isp->isp_osinfo.ehook.ich_arg = isp;
+ ISP_UNLOCK(isp);
if (config_intrhook_establish(&isp->isp_osinfo.ehook) != 0) {
+ ISP_LOCK(isp);
cam_sim_free(sim, TRUE);
isp_prt(isp, ISP_LOGERR,
"could not establish interrupt enable hook");
return;
}
+ ISP_LOCK(isp);
if (xpt_bus_register(sim, primary) != CAM_SUCCESS) {
cam_sim_free(sim, TRUE);
OpenPOWER on IntegriCloud