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. | |||||