aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/mpr
diff options
context:
space:
mode:
authorWarner Losh <imp@FreeBSD.org>2025-12-10 21:06:50 +0000
committerWarner Losh <imp@FreeBSD.org>2025-12-10 21:09:07 +0000
commit84d198e137a59a17c08896333eaa9b318f4b1e1f (patch)
treea5a25bfbbfd1b15264c8c00de80310d442e359dc /sys/dev/mpr
parent89eddfb4b9f5d744623ce0ee8ea966b0d33456e5 (diff)
Diffstat (limited to 'sys/dev/mpr')
-rw-r--r--sys/dev/mpr/mpr_sas.c31
-rw-r--r--sys/dev/mpr/mpr_sas.h3
2 files changed, 2 insertions, 32 deletions
diff --git a/sys/dev/mpr/mpr_sas.c b/sys/dev/mpr/mpr_sas.c
index a48593b1e6ee..5f3a27a468b0 100644
--- a/sys/dev/mpr/mpr_sas.c
+++ b/sys/dev/mpr/mpr_sas.c
@@ -152,25 +152,6 @@ mprsas_find_target_by_handle(struct mprsas_softc *sassc, int start,
return (NULL);
}
-static void
-mprsas_startup_timeout(void *_sassc)
-{
- struct mprsas_softc *sassc = _sassc;
-
- /*
- * Things have taken far too long. We have to get on with it. However,
- * we're still processing events. We'll release the boot here only.
- * We're called with the mpr lock held, which the rest of these
- * functions take. This may cause mountroot to fail, but we'll at least
- * proceed with the boot if this isn't holding up the system disk.
- */
- callout_stop(&sassc->startup_timeout);
- sassc->flags &= ~MPRSAS_STARTUP_ARMED;
- xpt_release_boot();
- printf("Gave up all the devices...\n");
-};
-
-
/* we need to freeze the simq during attach and diag reset, to avoid failing
* commands before device handles have been found by discovery. Since
* discovery involves reading config pages and possibly sending commands,
@@ -190,10 +171,6 @@ mprsas_startup_increment(struct mprsas_softc *sassc)
"%s freezing simq\n", __func__);
xpt_hold_boot();
xpt_freeze_simq(sassc->sim, 1);
- callout_init_mtx(&sassc->startup_timeout,
- &sassc->sc->mpr_mtx, 0);
- callout_reset(&sassc->startup_timeout, 60 * hz,
- mprsas_startup_timeout, sassc);
}
mpr_dprint(sassc->sc, MPR_INIT, "%s refcount %u\n", __func__,
sassc->startup_refcount);
@@ -220,15 +197,11 @@ mprsas_startup_decrement(struct mprsas_softc *sassc)
/* finished all discovery-related actions, release
* the simq and rescan for the latest topology.
*/
- bool need_release = sassc->flags & MPRSAS_STARTUP_ARMED;
mpr_dprint(sassc->sc, MPR_INIT,
"%s releasing simq\n", __func__);
- if (need_release) /* stop to prevent deadlock */
- callout_stop(&sassc->startup_timeout);
- sassc->flags &= ~(MPRSAS_IN_STARTUP | MPRSAS_STARTUP_ARMED);
+ sassc->flags &= ~MPRSAS_IN_STARTUP;
xpt_release_simq(sassc->sim, 1);
- if (need_release)
- xpt_release_boot();
+ xpt_release_boot();
}
mpr_dprint(sassc->sc, MPR_INIT, "%s refcount %u\n", __func__,
sassc->startup_refcount);
diff --git a/sys/dev/mpr/mpr_sas.h b/sys/dev/mpr/mpr_sas.h
index 24250cf50d14..4f1be3cd4214 100644
--- a/sys/dev/mpr/mpr_sas.h
+++ b/sys/dev/mpr/mpr_sas.h
@@ -91,7 +91,6 @@ struct mprsas_softc {
#define MPRSAS_IN_STARTUP (1 << 1)
#define MPRSAS_QUEUE_FROZEN (1 << 3)
#define MPRSAS_TOREMOVE (1 << 5)
-#define MPRSAS_STARTUP_ARMED (1 << 6)
u_int maxtargets;
struct mprsas_target *targets;
struct cam_devq *devq;
@@ -103,8 +102,6 @@ struct mprsas_softc {
u_int startup_refcount;
struct proc *sysctl_proc;
- struct callout startup_timeout;
-
struct taskqueue *ev_tq;
struct task ev_task;
TAILQ_HEAD(, mpr_fw_event_work) ev_queue;