Make sure we hold the SIM lock when calling xpt_free_path().

Sponsored by:	Spectra Logic Corporation
MFC after:	1 week
This commit is contained in:
Kenneth D. Merry 2012-12-08 04:55:06 +00:00
parent c67e754951
commit a6495a9d22
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=244016

View File

@ -1822,8 +1822,6 @@ ctlfe_onoffline(void *arg, int online)
xpt_action(ccb);
CAM_SIM_UNLOCK(sim);
if ((ccb->ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) {
printf("%s: SIM %s (path id %d) target %s failed with "
"status %#x\n",
@ -1836,9 +1834,12 @@ ctlfe_onoffline(void *arg, int online)
(online != 0) ? "enable" : "disable");
}
free(ccb, M_TEMP);
xpt_free_path(path);
CAM_SIM_UNLOCK(sim);
free(ccb, M_TEMP);
return;
}
@ -1920,10 +1921,10 @@ ctlfe_lun_enable(void *arg, struct ctl_id targ_id, int lun_id)
0,
softc);
mtx_unlock(sim->mtx);
xpt_free_path(path);
mtx_unlock(sim->mtx);
return (0);
}