Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 24 Dec 2018 05:54:37 +0000 (UTC)
From:      Scott Long <scottl@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r342387 - in head/sys/dev: mpr mps
Message-ID:  <201812240554.wBO5sbRs041040@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: scottl
Date: Mon Dec 24 05:54:36 2018
New Revision: 342387
URL: https://svnweb.freebsd.org/changeset/base/342387

Log:
  Commands for user-initated device resets should come from the high-priority
  allocator.  Prior to this change, they would leak from the normal allocator.

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

Modified: head/sys/dev/mpr/mpr_sas.c
==============================================================================
--- head/sys/dev/mpr/mpr_sas.c	Mon Dec 24 05:05:38 2018	(r342386)
+++ head/sys/dev/mpr/mpr_sas.c	Mon Dec 24 05:54:36 2018	(r342387)
@@ -3312,7 +3312,7 @@ mprsas_action_resetdev(struct mprsas_softc *sassc, uni
 	KASSERT(ccb->ccb_h.target_id < sassc->maxtargets, ("Target %d out of "
 	    "bounds in XPT_RESET_DEV\n", ccb->ccb_h.target_id));
 	sc = sassc->sc;
-	tm = mpr_alloc_command(sc);
+	tm = mprsas_alloc_tm(sc);
 	if (tm == NULL) {
 		mpr_dprint(sc, MPR_ERROR, "command alloc failure in "
 		    "mprsas_action_resetdev\n");
@@ -3337,8 +3337,8 @@ mprsas_action_resetdev(struct mprsas_softc *sassc, uni
 	mpr_dprint(sc, MPR_INFO, "%s: Sending reset for target ID %d\n",
 	    __func__, targ->tid);
 	tm->cm_targ = targ;
-	targ->flags |= MPRSAS_TARGET_INRESET;
 
+	mprsas_prepare_for_tm(sc, cm, targ, CAM_LUN_WILDCARD);
 	mpr_map_command(sc, tm);
 }
 

Modified: head/sys/dev/mps/mps_sas.c
==============================================================================
--- head/sys/dev/mps/mps_sas.c	Mon Dec 24 05:05:38 2018	(r342386)
+++ head/sys/dev/mps/mps_sas.c	Mon Dec 24 05:54:36 2018	(r342387)
@@ -3057,7 +3057,7 @@ mpssas_action_resetdev(struct mpssas_softc *sassc, uni
 	    ("Target %d out of bounds in XPT_RESET_DEV\n",
 	     ccb->ccb_h.target_id));
 	sc = sassc->sc;
-	tm = mps_alloc_command(sc);
+	tm = mpssas_alloc_tm(sc);
 	if (tm == NULL) {
 		mps_dprint(sc, MPS_ERROR,
 		    "command alloc failure in mpssas_action_resetdev\n");
@@ -3079,8 +3079,8 @@ mpssas_action_resetdev(struct mpssas_softc *sassc, uni
 	tm->cm_complete = mpssas_resetdev_complete;
 	tm->cm_complete_data = ccb;
 	tm->cm_targ = targ;
-	targ->flags |= MPSSAS_TARGET_INRESET;
 
+	mpssas_prepare_for_tm(sc, tm, targ, CAM_LUN_WILDCARD);
 	mps_map_command(sc, tm);
 }
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201812240554.wBO5sbRs041040>