1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-20 11:11:24 +00:00

In case of target mode disable at least ISP2532 return invalid zero

ct_rxid value on CTIO completion.  Try to workaround that using tag_id
from the CCB, pointed by still valid ct_syshandle.

I don't know whether this is valid fix or dirty hack, but considering that
alternative is indefinitely stuck command -- it worth trying.

MFC after:	1 week
This commit is contained in:
Alexander Motin 2015-06-18 07:50:27 +00:00
parent 9b1aa8d622
commit af207637b0
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=284540

View File

@ -2930,6 +2930,14 @@ isp_handle_platform_ctio(ispsoftc_t *isp, void *arg)
} else {
atp = isp_find_atpd(isp, tptr, ((ct_entry_t *)arg)->ct_fwhandle);
}
if (atp == NULL) {
/*
* In case of target mode disable at least ISP2532 return
* invalid zero ct_rxid value. Try to workaround that using
* tag_id from the CCB, pointed by valid ct_syshandle.
*/
atp = isp_find_atpd(isp, tptr, ccb->csio.tag_id);
}
if (atp == NULL) {
rls_lun_statep(isp, tptr);
isp_prt(isp, ISP_LOGERR, "%s: cannot find adjunct for %x after I/O", __func__, ccb->csio.tag_id);