int isp_loop_down_limit = 60; /* default loop down limit */
int isp_quickboot_time = 7; /* don't wait more than N secs for loop up */
int isp_gone_device_time = 30; /* grace time before reporting device lost */
-int isp_autoconfig = 1; /* automatically attach/detach devices */
static const char prom3[] = "Chan %d [%u] PortID 0x%06x Departed because of %s";
static void isp_freeze_loopdown(ispsoftc_t *, int, char *);
if (fc->simqfrozen == 0) {
isp_prt(isp, ISP_LOGDEBUG0, "%s: freeze simq (loopdown) chan %d", msg, chan);
fc->simqfrozen = SIMQFRZ_LOOPDOWN;
+#if __FreeBSD_version >= 1000039
+ xpt_hold_boot();
+#endif
xpt_freeze_simq(fc->sim, 1);
} else {
isp_prt(isp, ISP_LOGDEBUG0, "%s: mark frozen (loopdown) chan %d", msg, chan);
if (wasfrozen && fc->simqfrozen == 0) {
isp_prt(isp, ISP_LOG_SANCFG|ISP_LOGDEBUG0, "%s: Chan %d releasing simq", __func__, chan);
xpt_release_simq(fc->sim, 1);
+#if __FreeBSD_version >= 1000039
+ xpt_release_boot();
+#endif
}
}
}
union ccb *ccb;
struct isp_fc *fc = ISP_FC_PC(isp, chan);
- if (isp_autoconfig == 0) {
- return;
- }
-
/*
* Allocate a CCB, create a wildcard path for this target and schedule a rescan.
*/
struct cam_path *tp;
struct isp_fc *fc = ISP_FC_PC(isp, chan);
- if (isp_autoconfig == 0) {
- return;
- }
if (xpt_create_path(&tp, NULL, cam_sim_path(fc->sim), tgt, CAM_LUN_WILDCARD) == CAM_REQ_CMP) {
xpt_async(AC_LOST_DEVICE, tp, NULL);
xpt_free_path(tp);
fcparam *fcp = FCPARAM(isp, bus);
cpi->hba_misc = PIM_NOBUSRESET | PIM_UNMAPPED;
+#if __FreeBSD_version >= 1000039
+ cpi->hba_misc |= PIM_NOSCAN;
+#endif
/*
* Because our loop ID can shift from time to time,