Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/isp/isp_freebsd.c
Context not available. | |||||
oatp = isp_find_atpd(isp, chan, aep->at_rxid); | oatp = isp_find_atpd(isp, chan, aep->at_rxid); | ||||
if (oatp) { | if (oatp) { | ||||
isp_prt(isp, oatp->state == ATPD_STATE_LAST_CTIO ? ISP_LOGTDEBUG0 : | isp_prt(isp, ISP_LOGTDEBUG0, "[0x%x] tag wraparound in isp_handle_platforms_atio7 (N-Port Handle 0x%04x S_ID 0x%04x OX_ID 0x%04x) oatp state %d", | ||||
ISP_LOGWARN, "[0x%x] tag wraparound (N-Port Handle " | |||||
"0x%04x S_ID 0x%04x OX_ID 0x%04x) oatp state %d", | |||||
aep->at_rxid, nphdl, sid, aep->at_hdr.ox_id, oatp->state); | aep->at_rxid, nphdl, sid, aep->at_hdr.ox_id, oatp->state); | ||||
/* | /* | ||||
* It's not a "no resource" condition- but we can treat it like one | * It's not a "no resource" condition- but we can treat it like one | ||||
Context not available. | |||||
atp = isp_get_atpd(isp, chan, aep->at_rxid); | atp = isp_get_atpd(isp, chan, aep->at_rxid); | ||||
if (atp == NULL) { | if (atp == NULL) { | ||||
isp_prt(isp, ISP_LOGTDEBUG0, "[0x%x] out of atps", aep->at_rxid); | isp_prt(isp, ISP_LOGTDEBUG0, "[0x%x] out of atps", aep->at_rxid); | ||||
isp_endcmd(isp, aep, nphdl, chan, SCSI_BUSY, 0); | goto noresrc; | ||||
return; | |||||
} | } | ||||
atp->word3 = lp->prli_word3; | atp->word3 = lp->prli_word3; | ||||
atp->state = ATPD_STATE_ATIO; | atp->state = ATPD_STATE_ATIO; | ||||
Context not available. | |||||
xpt_done((union ccb *)atiop); | xpt_done((union ccb *)atiop); | ||||
return; | return; | ||||
noresrc: | noresrc: | ||||
KASSERT(atp == NULL, ("%s: atp is not NULL on noresrc!\n", __func__)); | if (atp) | ||||
isp_put_atpd(isp, chan, atp); | |||||
ntp = isp_get_ntpd(isp, chan); | ntp = isp_get_ntpd(isp, chan); | ||||
if (ntp == NULL) { | if (ntp == NULL) { | ||||
isp_endcmd(isp, aep, nphdl, chan, SCSI_STATUS_BUSY, 0); | isp_endcmd(isp, aep, nphdl, chan, SCSI_STATUS_BUSY, 0); | ||||
Context not available. | |||||
if (lp->state == FC_PORTDB_STATE_NIL) | if (lp->state == FC_PORTDB_STATE_NIL) | ||||
continue; | continue; | ||||
for (i = 0; i < ISP_HANDLE_NUM(isp); i++) { | for (i = 0; i < isp->isp_maxcmds; i++) { | ||||
struct ccb_scsiio *xs; | struct ccb_scsiio *xs; | ||||
if (ISP_H2HT(isp->isp_xflist[i].handle) != ISP_HANDLE_INITIATOR) { | if (ISP_H2HT(isp->isp_xflist[i].handle) != ISP_HANDLE_INITIATOR) { | ||||
Context not available. |