The branch main has been updated by imp:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=84d198e137a59a17c08896333eaa9b318f4b1e1f

commit 84d198e137a59a17c08896333eaa9b318f4b1e1f
Author:     Warner Losh <[email protected]>
AuthorDate: 2025-12-10 21:06:50 +0000
Commit:     Warner Losh <[email protected]>
CommitDate: 2025-12-10 21:09:07 +0000

    mpr: Partially revert 332096ebb638
    
    These were a doodle that escaped into my staging tree. Remove them.
    
    Sponsored by:           Netflix
---
 sys/dev/mpr/mpr_sas.c | 31 ++-----------------------------
 sys/dev/mpr/mpr_sas.h |  3 ---
 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;

Reply via email to