svn commit: r323384 - in head/sys/dev: mpr mps

Scott Long scottl at FreeBSD.org
Sun Sep 10 07:10:41 UTC 2017


Author: scottl
Date: Sun Sep 10 07:10:40 2017
New Revision: 323384
URL: https://svnweb.freebsd.org/changeset/base/323384

Log:
  Fix intrhook release in MPR and MPS for EARLY_AP_STARTUP.
  
  Reported by:	Limelight
  Sponsored by:	Netflix

Modified:
  head/sys/dev/mpr/mpr.c
  head/sys/dev/mpr/mpr_sas.c
  head/sys/dev/mps/mps.c
  head/sys/dev/mps/mps_sas.c

Modified: head/sys/dev/mpr/mpr.c
==============================================================================
--- head/sys/dev/mpr/mpr.c	Sun Sep 10 04:09:18 2017	(r323383)
+++ head/sys/dev/mpr/mpr.c	Sun Sep 10 07:10:40 2017	(r323384)
@@ -1816,6 +1816,11 @@ mpr_startup(void *arg)
 	mpr_mapping_initialize(sc);
 	mprsas_startup(sc);
 	mpr_unlock(sc);
+
+	mpr_dprint(sc, MPR_INIT, "disestablish config intrhook\n");
+	config_intrhook_disestablish(&sc->mpr_ich);
+	sc->mpr_ich.ich_arg = NULL;
+
 	mpr_dprint(sc, MPR_INIT, "%s exit\n", __func__);
 }
 

Modified: head/sys/dev/mpr/mpr_sas.c
==============================================================================
--- head/sys/dev/mpr/mpr_sas.c	Sun Sep 10 04:09:18 2017	(r323383)
+++ head/sys/dev/mpr/mpr_sas.c	Sun Sep 10 07:10:40 2017	(r323384)
@@ -3829,12 +3829,6 @@ mprsas_portenable_complete(struct mpr_softc *sc, struc
 		mpr_dprint(sc, MPR_FAULT, "Portenable failed\n");
 
 	mpr_free_command(sc, cm);
-	if (sc->mpr_ich.ich_arg != NULL) {
-		mpr_dprint(sc, MPR_XINFO, "disestablish config intrhook\n");
-		config_intrhook_disestablish(&sc->mpr_ich);
-		sc->mpr_ich.ich_arg = NULL;
-	}
-
 	/*
 	 * Done waiting for port enable to complete.  Decrement the refcount.
 	 * If refcount is 0, discovery is complete and a rescan of the bus can

Modified: head/sys/dev/mps/mps.c
==============================================================================
--- head/sys/dev/mps/mps.c	Sun Sep 10 04:09:18 2017	(r323383)
+++ head/sys/dev/mps/mps.c	Sun Sep 10 07:10:40 2017	(r323384)
@@ -1673,6 +1673,11 @@ mps_startup(void *arg)
 	mps_mapping_initialize(sc);
 	mpssas_startup(sc);
 	mps_unlock(sc);
+
+	mps_dprint(sc, MPS_INIT, "disestablish config intrhook\n");
+	config_intrhook_disestablish(&sc->mps_ich);
+	sc->mps_ich.ich_arg = NULL;
+
 	mps_dprint(sc, MPS_INIT, "%s exit\n", __func__);
 }
 

Modified: head/sys/dev/mps/mps_sas.c
==============================================================================
--- head/sys/dev/mps/mps_sas.c	Sun Sep 10 04:09:18 2017	(r323383)
+++ head/sys/dev/mps/mps_sas.c	Sun Sep 10 07:10:40 2017	(r323384)
@@ -3557,11 +3557,6 @@ mpssas_portenable_complete(struct mps_softc *sc, struc
 		mps_dprint(sc, MPS_FAULT, "Portenable failed\n");
 
 	mps_free_command(sc, cm);
-	if (sc->mps_ich.ich_arg != NULL) {
-		mps_dprint(sc, MPS_XINFO, "disestablish config intrhook\n");
-		config_intrhook_disestablish(&sc->mps_ich);
-		sc->mps_ich.ich_arg = NULL;
-	}
 
 	/*
 	 * Get WarpDrive info after discovery is complete but before the scan


More information about the svn-src-all mailing list