mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-28 11:57:28 +00:00
Change the way how target mode is enabled on 23xx chips.
Without docs I am not completely sure about this, but on my tests new method works better then previous, at least with our latest firmware.
This commit is contained in:
parent
83a283cf62
commit
668c0ec64f
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=290118
@ -1895,7 +1895,7 @@ isp_fibre_init(ispsoftc_t *isp)
|
|||||||
icbp->icb_logintime = ICB_LOGIN_TOV;
|
icbp->icb_logintime = ICB_LOGIN_TOV;
|
||||||
|
|
||||||
#ifdef ISP_TARGET_MODE
|
#ifdef ISP_TARGET_MODE
|
||||||
if (ISP_FW_NEWER_THAN(isp, 3, 25, 0) && (icbp->icb_fwoptions & ICBOPT_TGT_ENABLE)) {
|
if (IS_23XX(isp) && (icbp->icb_fwoptions & ICBOPT_TGT_ENABLE)) {
|
||||||
icbp->icb_lunenables = 0xffff;
|
icbp->icb_lunenables = 0xffff;
|
||||||
icbp->icb_ccnt = DFLT_CMND_CNT;
|
icbp->icb_ccnt = DFLT_CMND_CNT;
|
||||||
icbp->icb_icnt = DFLT_INOT_CNT;
|
icbp->icb_icnt = DFLT_INOT_CNT;
|
||||||
|
@ -1414,7 +1414,8 @@ isp_enable_deferred(ispsoftc_t *isp, int bus, lun_id_t lun)
|
|||||||
|
|
||||||
ISP_GET_PC(isp, bus, tm_luns_enabled, luns_already_enabled);
|
ISP_GET_PC(isp, bus, tm_luns_enabled, luns_already_enabled);
|
||||||
isp_prt(isp, ISP_LOGTINFO, "%s: bus %d lun %jx luns_enabled %d", __func__, bus, (uintmax_t)lun, luns_already_enabled);
|
isp_prt(isp, ISP_LOGTINFO, "%s: bus %d lun %jx luns_enabled %d", __func__, bus, (uintmax_t)lun, luns_already_enabled);
|
||||||
if (IS_24XX(isp) || (IS_FC(isp) && luns_already_enabled)) {
|
if (IS_23XX(isp) || IS_24XX(isp) ||
|
||||||
|
(IS_FC(isp) && luns_already_enabled)) {
|
||||||
status = CAM_REQ_CMP;
|
status = CAM_REQ_CMP;
|
||||||
} else {
|
} else {
|
||||||
int cmd_cnt, not_cnt;
|
int cmd_cnt, not_cnt;
|
||||||
@ -1485,7 +1486,7 @@ isp_disable_lun(ispsoftc_t *isp, union ccb *ccb)
|
|||||||
/*
|
/*
|
||||||
* If we're a 24XX card, we're done.
|
* If we're a 24XX card, we're done.
|
||||||
*/
|
*/
|
||||||
if (IS_24XX(isp)) {
|
if (IS_23XX(isp) || IS_24XX(isp)) {
|
||||||
status = CAM_REQ_CMP;
|
status = CAM_REQ_CMP;
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
@ -1501,7 +1502,7 @@ isp_disable_lun(ispsoftc_t *isp, union ccb *ccb)
|
|||||||
if (isp_lun_cmd(isp, RQSTYPE_ENABLE_LUN, bus, lun, 0, 0)) {
|
if (isp_lun_cmd(isp, RQSTYPE_ENABLE_LUN, bus, lun, 0, 0)) {
|
||||||
status = CAM_RESRC_UNAVAIL;
|
status = CAM_RESRC_UNAVAIL;
|
||||||
} else {
|
} else {
|
||||||
mtx_sleep(ccb, &isp->isp_lock, PRIBIO, "isp_disable_lun", 0);
|
mtx_sleep(&status, &isp->isp_lock, PRIBIO, "isp_disable_lun", 0);
|
||||||
}
|
}
|
||||||
isp->isp_osinfo.rptr = NULL;
|
isp->isp_osinfo.rptr = NULL;
|
||||||
done:
|
done:
|
||||||
|
Loading…
Reference in New Issue
Block a user