diff options
author | mjacob <mjacob@FreeBSD.org> | 2007-05-13 17:45:00 +0000 |
---|---|---|
committer | mjacob <mjacob@FreeBSD.org> | 2007-05-13 17:45:00 +0000 |
commit | 93b09939f6cbd94f0ab51bee21ffdbf29ec46995 (patch) | |
tree | e6e4e61851f31b351e602f6cd2531598cdd153f6 /sys/dev/isp/isp_freebsd.c | |
parent | 48b37b43f02e8825d9d0a98302c35d747c139192 (diff) | |
download | FreeBSD-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.c | 3 |
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); |