mpr/mps: when sending reset on removal, include target in message

It's possible for muliple drives to be departing at the same time (if
the common power rail the share goes dark, for example). To understand
what's going on better, include target and handle in the messages
announcing the reset to allow matching with other corresponding events.

MFC After:		3 days
Sponsored by:		Netflix
Reviewed by:		mav
Differential Revision:	https://reviews.freebsd.org/D35092
This commit is contained in:
Warner Losh 2022-04-28 16:29:28 -06:00
parent 45825a12f9
commit ca420b4ef2
2 changed files with 12 additions and 4 deletions

View File

@ -618,7 +618,9 @@ mprsas_remove_device(struct mpr_softc *sc, struct mpr_command *tm)
* if so.
*/
if (TAILQ_FIRST(&targ->commands) == NULL) {
mpr_dprint(sc, MPR_INFO, "No pending commands: starting remove_device\n");
mpr_dprint(sc, MPR_INFO,
"No pending commands: starting remove_device for target %u handle 0x%04x\n",
targ->tid, handle);
mpr_map_command(sc, tm);
targ->pending_remove_tm = NULL;
} else {
@ -2842,7 +2844,9 @@ mprsas_scsiio_complete(struct mpr_softc *sc, struct mpr_command *cm)
if (cm->cm_targ->flags & MPRSAS_TARGET_INREMOVAL) {
if (TAILQ_FIRST(&cm->cm_targ->commands) == NULL &&
cm->cm_targ->pending_remove_tm != NULL) {
mpr_dprint(sc, MPR_INFO, "Last pending command complete: starting remove_device\n");
mpr_dprint(sc, MPR_INFO,
"Last pending command complete: starting remove_device target %u handle 0x%04x\n",
cm->cm_targ->tid, cm->cm_targ->handle);
mpr_map_command(sc, cm->cm_targ->pending_remove_tm);
cm->cm_targ->pending_remove_tm = NULL;
}

View File

@ -588,7 +588,9 @@ mpssas_remove_device(struct mps_softc *sc, struct mps_command *tm)
* if so.
*/
if (TAILQ_FIRST(&targ->commands) == NULL) {
mps_dprint(sc, MPS_INFO, "No pending commands: starting remove_device\n");
mps_dprint(sc, MPS_INFO,
"No pending commands: starting remove_device target %u handle 0x%04x\n",
targ->tid, handle);
mps_map_command(sc, tm);
targ->pending_remove_tm = NULL;
} else {
@ -2383,7 +2385,9 @@ mpssas_scsiio_complete(struct mps_softc *sc, struct mps_command *cm)
if (cm->cm_targ->flags & MPSSAS_TARGET_INREMOVAL) {
if (TAILQ_FIRST(&cm->cm_targ->commands) == NULL &&
cm->cm_targ->pending_remove_tm != NULL) {
mps_dprint(sc, MPS_INFO, "Last pending command complete: starting remove_device\n");
mps_dprint(sc, MPS_INFO,
"Last pending command complete: starting remove_device target %u handle 0x%04x\n",
cm->cm_targ->tid, cm->cm_targ->handle);
mps_map_command(sc, cm->cm_targ->pending_remove_tm);
cm->cm_targ->pending_remove_tm = NULL;
}