Lines Matching +full:reset +full:- +full:n +full:- +full:io
1 // SPDX-License-Identifier: GPL-2.0-only
22 #define snic_cmd_tag(sc) (scsi_cmd_to_rq(sc)->tag)
100 u32 hash = snic_cmd_tag(sc) & (SNIC_IO_LOCKS - 1); in snic_io_lock_hash()
102 return &snic->io_req_lock[hash]; in snic_io_lock_hash()
108 return &snic->io_req_lock[tag & (SNIC_IO_LOCKS - 1)]; in snic_io_lock_tag()
128 SNIC_SCSI_DBG(snic->shost, in snic_release_req_buf()
129 "Rel_req:sc %p:tag %x:rqi %p:ioreq %p:abt %p:dr %p: state %s:flags 0x%llx\n", in snic_release_req_buf()
130 sc, snic_cmd_tag(sc), rqi, rqi->req, rqi->abort_req, in snic_release_req_buf()
131 rqi->dr_req, snic_ioreq_state_to_str(CMD_STATE(sc)), in snic_release_req_buf()
134 if (req->u.icmnd.sense_addr) in snic_release_req_buf()
135 dma_unmap_single(&snic->pdev->dev, in snic_release_req_buf()
136 le64_to_cpu(req->u.icmnd.sense_addr), in snic_release_req_buf()
164 sgd = (struct snic_sg_desc *) req_to_sgl(rqi->req); in snic_queue_icmnd_req()
167 sgd->addr = cpu_to_le64(sg_dma_address(sg)); in snic_queue_icmnd_req()
168 sgd->len = cpu_to_le32(sg_dma_len(sg)); in snic_queue_icmnd_req()
169 sgd->_resvd = 0; in snic_queue_icmnd_req()
174 pa = dma_map_single(&snic->pdev->dev, in snic_queue_icmnd_req()
175 sc->sense_buffer, in snic_queue_icmnd_req()
178 if (dma_mapping_error(&snic->pdev->dev, pa)) { in snic_queue_icmnd_req()
179 SNIC_HOST_ERR(snic->shost, in snic_queue_icmnd_req()
180 "QIcmnd:PCI Map Failed for sns buf %p tag %x\n", in snic_queue_icmnd_req()
181 sc->sense_buffer, snic_cmd_tag(sc)); in snic_queue_icmnd_req()
182 ret = -ENOMEM; in snic_queue_icmnd_req()
187 int_to_scsilun(sc->device->lun, &lun); in snic_queue_icmnd_req()
188 if (sc->sc_data_direction == DMA_FROM_DEVICE) in snic_queue_icmnd_req()
190 if (sc->sc_data_direction == DMA_TO_DEVICE) in snic_queue_icmnd_req()
194 snic_icmnd_init(rqi->req, in snic_queue_icmnd_req()
196 snic->config.hid, /* hid */ in snic_queue_icmnd_req()
199 rqi->tgt_id, in snic_queue_icmnd_req()
201 sc->cmnd, in snic_queue_icmnd_req()
202 sc->cmd_len, in snic_queue_icmnd_req()
205 (ulong) req_to_sgl(rqi->req), in snic_queue_icmnd_req()
209 atomic64_inc(&snic->s_stats.io.active); in snic_queue_icmnd_req()
210 ret = snic_queue_wq_desc(snic, rqi->req, rqi->req_len); in snic_queue_icmnd_req()
212 atomic64_dec(&snic->s_stats.io.active); in snic_queue_icmnd_req()
213 SNIC_HOST_ERR(snic->shost, in snic_queue_icmnd_req()
214 "QIcmnd: Queuing Icmnd Failed. ret = %d\n", in snic_queue_icmnd_req()
217 snic_stats_update_active_ios(&snic->s_stats); in snic_queue_icmnd_req()
223 * snic_issue_scsi_req : Prepares IO request and Issues to FW.
242 SNIC_TRC((u16)snic->shost->host_no, tag, (ulong) sc, 0, in snic_issue_scsi_req()
243 sc->cmnd[0], sg_cnt, CMD_STATE(sc)); in snic_issue_scsi_req()
245 SNIC_HOST_ERR(snic->shost, "issue_sc:Failed to map SG List.\n"); in snic_issue_scsi_req()
246 ret = -ENOMEM; in snic_issue_scsi_req()
254 ret = -ENOMEM; in snic_issue_scsi_req()
259 rqi->tgt_id = tgt->id; in snic_issue_scsi_req()
260 rqi->sc = sc; in snic_issue_scsi_req()
272 SNIC_HOST_ERR(snic->shost, in snic_issue_scsi_req()
273 "issue_sc: icmnd qing Failed for sc %p, err %d\n", in snic_issue_scsi_req()
286 SNIC_TRC(snic->shost->host_no, tag, (ulong) sc, 0, 0, 0, in snic_issue_scsi_req()
290 u32 qtime = jiffies - rqi->start_time; in snic_issue_scsi_req()
291 struct snic_io_stats *iostats = &snic->s_stats.io; in snic_issue_scsi_req()
293 if (io_sz > atomic64_read(&iostats->max_io_sz)) in snic_issue_scsi_req()
294 atomic64_set(&iostats->max_io_sz, io_sz); in snic_issue_scsi_req()
296 if (qtime > atomic64_read(&iostats->max_qtime)) in snic_issue_scsi_req()
297 atomic64_set(&iostats->max_qtime, qtime); in snic_issue_scsi_req()
299 SNIC_SCSI_DBG(snic->shost, in snic_issue_scsi_req()
300 "issue_sc:sc %p, tag %d queued to WQ.\n", in snic_issue_scsi_req()
303 SNIC_TRC(snic->shost->host_no, tag, (ulong) sc, (ulong) rqi, in snic_issue_scsi_req()
325 tgt = starget_to_tgt(scsi_target(sc->device)); in snic_queuecommand()
328 SNIC_HOST_ERR(shost, "Tgt %p id %d Not Ready.\n", tgt, tgt->id); in snic_queuecommand()
329 atomic64_inc(&snic->s_stats.misc.tgt_not_rdy); in snic_queuecommand()
330 sc->result = ret; in snic_queuecommand()
337 SNIC_HOST_ERR(shost, "snic state is %s\n", in snic_queuecommand()
342 atomic_inc(&snic->ios_inflight); in snic_queuecommand()
344 SNIC_SCSI_DBG(shost, "sc %p Tag %d (sc %0x) lun %lld in snic_qcmd\n", in snic_queuecommand()
345 sc, snic_cmd_tag(sc), sc->cmnd[0], sc->device->lun); in snic_queuecommand()
349 SNIC_HOST_ERR(shost, "Failed to Q, Scsi Req w/ err %d.\n", ret); in snic_queuecommand()
353 atomic_dec(&snic->ios_inflight); in snic_queuecommand()
360 * caller should hold IO lock
392 * Processes IO's error states
404 atomic64_inc(&snic->s_stats.misc.io_tmo); in snic_process_io_failed_state()
409 atomic64_inc(&snic->s_stats.misc.io_aborted); in snic_process_io_failed_state()
414 atomic64_inc(&snic->s_stats.misc.data_cnt_mismat); in snic_process_io_failed_state()
415 scsi_set_resid(sc, le32_to_cpu(icmnd_cmpl->resid)); in snic_process_io_failed_state()
420 atomic64_inc(&snic->s_stats.fw.out_of_res); in snic_process_io_failed_state()
425 atomic64_inc(&snic->s_stats.io.io_not_found); in snic_process_io_failed_state()
430 atomic64_inc(&snic->s_stats.misc.sgl_inval); in snic_process_io_failed_state()
435 atomic64_inc(&snic->s_stats.fw.io_errs); in snic_process_io_failed_state()
440 atomic64_inc(&snic->s_stats.fw.scsi_errs); in snic_process_io_failed_state()
454 SNIC_SCSI_DBG(snic->shost, in snic_process_io_failed_state()
455 "Invalid Hdr/Param or Req Not Supported or Cmnd Rejected or Device Offline. or Unknown\n"); in snic_process_io_failed_state()
460 SNIC_HOST_ERR(snic->shost, "fw returns failed status %s flags 0x%llx\n", in snic_process_io_failed_state()
463 /* Set sc->result */ in snic_process_io_failed_state()
464 sc->result = (res << 16) | icmnd_cmpl->scsi_status; in snic_process_io_failed_state()
489 u8 scsi_stat = icmnd_cmpl->scsi_status; in snic_process_icmnd_cmpl_status()
493 /* Mark the IO as complete */ in snic_process_icmnd_cmpl_status()
497 sc->result = (DID_OK << 16) | scsi_stat; in snic_process_icmnd_cmpl_status()
502 scsi_set_resid(sc, le32_to_cpu(icmnd_cmpl->resid)); in snic_process_icmnd_cmpl_status()
504 if (icmnd_cmpl->flags & SNIC_ICMND_CMPL_UNDR_RUN) { in snic_process_icmnd_cmpl_status()
505 xfer_len -= le32_to_cpu(icmnd_cmpl->resid); in snic_process_icmnd_cmpl_status()
506 atomic64_inc(&snic->s_stats.misc.io_under_run); in snic_process_icmnd_cmpl_status()
509 if (icmnd_cmpl->scsi_status == SAM_STAT_TASK_SET_FULL) in snic_process_icmnd_cmpl_status()
510 atomic64_inc(&snic->s_stats.misc.qfull); in snic_process_icmnd_cmpl_status()
515 atomic64_inc(&snic->s_stats.io.fail); in snic_process_icmnd_cmpl_status()
516 SNIC_HOST_ERR(snic->shost, in snic_process_icmnd_cmpl_status()
517 "icmnd_cmpl: IO Failed : Hdr Status %s flags 0x%llx\n", in snic_process_icmnd_cmpl_status()
544 snic_io_hdr_dec(&fwreq->hdr, &typ, &hdr_stat, &cmnd_id, &hid, &ctx); in snic_icmnd_cmpl_handler()
545 icmnd_cmpl = &fwreq->u.icmnd_cmpl; in snic_icmnd_cmpl_handler()
546 sc_stat = icmnd_cmpl->scsi_status; in snic_icmnd_cmpl_handler()
548 SNIC_SCSI_DBG(snic->shost, in snic_icmnd_cmpl_handler()
549 "Icmnd_cmpl: type = %x, hdr_stat = %x, cmnd_id = %x, hid = %x,i ctx = %lx\n", in snic_icmnd_cmpl_handler()
552 if (cmnd_id >= snic->max_tag_id) { in snic_icmnd_cmpl_handler()
553 SNIC_HOST_ERR(snic->shost, in snic_icmnd_cmpl_handler()
554 "Icmnd_cmpl:Tag Error:Out of Range Tag %d, hdr status = %s\n", in snic_icmnd_cmpl_handler()
559 sc = scsi_host_find_tag(snic->shost, cmnd_id); in snic_icmnd_cmpl_handler()
563 atomic64_inc(&snic->s_stats.io.sc_null); in snic_icmnd_cmpl_handler()
564 SNIC_HOST_ERR(snic->shost, in snic_icmnd_cmpl_handler()
565 "Icmnd_cmpl: Scsi Cmnd Not found, sc = NULL Hdr Status = %s tag = 0x%x fwreq = 0x%p\n", in snic_icmnd_cmpl_handler()
570 SNIC_TRC(snic->shost->host_no, cmnd_id, 0, in snic_icmnd_cmpl_handler()
572 (u64)sc_stat << 8 | (u64)icmnd_cmpl->flags), in snic_icmnd_cmpl_handler()
573 (ulong) fwreq, le32_to_cpu(icmnd_cmpl->resid), ctx); in snic_icmnd_cmpl_handler()
582 SNIC_SCSI_DBG(snic->shost, in snic_icmnd_cmpl_handler()
583 "Icmnd_cmpl:lun %lld sc %p cmd %xtag %d flags 0x%llx rqi %p\n", in snic_icmnd_cmpl_handler()
584 sc->device->lun, sc, sc->cmnd[0], snic_cmd_tag(sc), in snic_icmnd_cmpl_handler()
596 atomic64_inc(&snic->s_stats.io.req_null); in snic_icmnd_cmpl_handler()
600 SNIC_HOST_ERR(snic->shost, in snic_icmnd_cmpl_handler()
601 "Icmnd_cmpl:Host Req Not Found(null), Hdr Status %s, Tag 0x%x, sc 0x%p flags 0x%llx\n", in snic_icmnd_cmpl_handler()
608 start_time = rqi->start_time; in snic_icmnd_cmpl_handler()
610 /* firmware completed the io */ in snic_icmnd_cmpl_handler()
611 rqi->io_cmpl = 1; in snic_icmnd_cmpl_handler()
614 * if SCSI-ML has already issued abort on this command, in snic_icmnd_cmpl_handler()
615 * ignore completion of the IO. The abts path will clean it up in snic_icmnd_cmpl_handler()
621 snic_stats_update_io_cmpl(&snic->s_stats); in snic_icmnd_cmpl_handler()
627 SNIC_SCSI_DBG(snic->shost, in snic_icmnd_cmpl_handler()
628 … "icmnd_cmpl:TM Req Pending(%s), Hdr Status %s sc 0x%p scsi status %x resid %d flags 0x%llx\n", in snic_icmnd_cmpl_handler()
631 sc, sc_stat, le32_to_cpu(icmnd_cmpl->resid), in snic_icmnd_cmpl_handler()
634 SNIC_TRC(snic->shost->host_no, cmnd_id, (ulong) sc, in snic_icmnd_cmpl_handler()
635 jiffies_to_msecs(jiffies - start_time), (ulong) fwreq, in snic_icmnd_cmpl_handler()
643 SNIC_HOST_ERR(snic->shost, in snic_icmnd_cmpl_handler()
644 "icmnd_cmpl:IO Failed, sc 0x%p Tag %d Cmd %x Hdr Status %s flags 0x%llx\n", in snic_icmnd_cmpl_handler()
645 sc, sc->cmnd[0], cmnd_id, in snic_icmnd_cmpl_handler()
655 /* For now, consider only successful IO. */ in snic_icmnd_cmpl_handler()
660 SNIC_TRC(snic->shost->host_no, cmnd_id, (ulong) sc, in snic_icmnd_cmpl_handler()
661 jiffies_to_msecs(jiffies - start_time), (ulong) fwreq, in snic_icmnd_cmpl_handler()
667 snic_stats_update_io_cmpl(&snic->s_stats); in snic_icmnd_cmpl_handler()
678 u32 start_time = rqi->start_time; in snic_proc_dr_cmpl_locked()
682 SNIC_SCSI_DBG(snic->shost, "itmf_cmpl: Cmd State = %s\n", in snic_proc_dr_cmpl_locked()
688 SNIC_TRC(snic->shost->host_no, cmnd_id, (ulong) sc, in snic_proc_dr_cmpl_locked()
689 jiffies_to_msecs(jiffies - start_time), in snic_proc_dr_cmpl_locked()
692 SNIC_SCSI_DBG(snic->shost, in snic_proc_dr_cmpl_locked()
693 "itmf_cmpl: Terminate Pending Dev Reset Cmpl Recvd.id %x, status %s flags 0x%llx\n", in snic_proc_dr_cmpl_locked()
703 SNIC_TRC(snic->shost->host_no, cmnd_id, (ulong) sc, in snic_proc_dr_cmpl_locked()
704 jiffies_to_msecs(jiffies - start_time), in snic_proc_dr_cmpl_locked()
707 SNIC_SCSI_DBG(snic->shost, in snic_proc_dr_cmpl_locked()
708 … "itmf_cmpl:Dev Reset Completion Received after timeout. id %d cmpl status %s flags 0x%llx\n", in snic_proc_dr_cmpl_locked()
719 SNIC_SCSI_DBG(snic->shost, in snic_proc_dr_cmpl_locked()
720 "itmf_cmpl:Dev Reset Cmpl Recvd id %d cmpl status %s flags 0x%llx\n", in snic_proc_dr_cmpl_locked()
725 if (rqi->dr_done) in snic_proc_dr_cmpl_locked()
726 complete(rqi->dr_done); in snic_proc_dr_cmpl_locked()
735 struct snic_abort_stats *abt_stats = &snic->s_stats.abts; in snic_update_abort_stats()
737 SNIC_SCSI_DBG(snic->shost, "Updating Abort stats.\n"); in snic_update_abort_stats()
744 atomic64_inc(&abt_stats->fw_tmo); in snic_update_abort_stats()
748 atomic64_inc(&abt_stats->io_not_found); in snic_update_abort_stats()
752 atomic64_inc(&abt_stats->fail); in snic_update_abort_stats()
782 atomic64_inc(&snic->s_stats.io.req_null); in snic_process_itmf_cmpl()
785 SNIC_HOST_ERR(snic->shost, in snic_process_itmf_cmpl()
786 "itmf_cmpl: rqi is null,Hdr stat = %s Tag = 0x%x sc = 0x%p flags 0x%llx\n", in snic_process_itmf_cmpl()
796 start_time = rqi->start_time; in snic_process_itmf_cmpl()
806 ret = -1; in snic_process_itmf_cmpl()
815 SNIC_SCSI_DBG(snic->shost, in snic_process_itmf_cmpl()
816 "itmf_cmpl:Abort Cmpl Recvd.Tag 0x%x Status %s flags 0x%llx\n", in snic_process_itmf_cmpl()
823 * signal completion to it. IO will be cleaned in the thread, in snic_process_itmf_cmpl()
826 if (rqi->abts_done) { in snic_process_itmf_cmpl()
827 complete(rqi->abts_done); in snic_process_itmf_cmpl()
834 sc->result = (DID_ERROR << 16); in snic_process_itmf_cmpl()
835 SNIC_SCSI_DBG(snic->shost, in snic_process_itmf_cmpl()
836 "itmf_cmpl: Completing IO. sc %p flags 0x%llx\n", in snic_process_itmf_cmpl()
843 SNIC_TRC(snic->shost->host_no, cmnd_id, (ulong) sc, in snic_process_itmf_cmpl()
844 jiffies_to_msecs(jiffies - start_time), in snic_process_itmf_cmpl()
861 /* Abort and terminate completion of device reset req */ in snic_process_itmf_cmpl()
867 SNIC_SCSI_DBG(snic->shost, in snic_process_itmf_cmpl()
868 "itmf_cmpl:dev reset abts cmpl recvd. id %d status %s flags 0x%llx\n", in snic_process_itmf_cmpl()
872 if (rqi->abts_done) in snic_process_itmf_cmpl()
873 complete(rqi->abts_done); in snic_process_itmf_cmpl()
881 SNIC_HOST_ERR(snic->shost, in snic_process_itmf_cmpl()
882 "itmf_cmpl: Unknown TM tag bit 0x%x\n", tm_tags); in snic_process_itmf_cmpl()
884 SNIC_HOST_ERR(snic->shost, in snic_process_itmf_cmpl()
885 "itmf_cmpl:Unexpected itmf io stat %s Tag = 0x%x flags 0x%llx\n", in snic_process_itmf_cmpl()
889 ret = -1; in snic_process_itmf_cmpl()
914 snic_io_hdr_dec(&fwreq->hdr, &typ, &hdr_stat, &cmnd_id, &hid, &ctx); in snic_itmf_cmpl_handler()
915 SNIC_SCSI_DBG(snic->shost, in snic_itmf_cmpl_handler()
916 "Itmf_cmpl: %s: type = %x, hdr_stat = %x, cmnd_id = %x, hid = %x,ctx = %lx\n", in snic_itmf_cmpl_handler()
919 itmf_cmpl = &fwreq->u.itmf_cmpl; in snic_itmf_cmpl_handler()
920 SNIC_SCSI_DBG(snic->shost, in snic_itmf_cmpl_handler()
921 "Itmf_cmpl: nterm %u , flags 0x%x\n", in snic_itmf_cmpl_handler()
922 le32_to_cpu(itmf_cmpl->nterminated), itmf_cmpl->flags); in snic_itmf_cmpl_handler()
924 /* spl case, dev reset issued through ioctl */ in snic_itmf_cmpl_handler()
927 sc = rqi->sc; in snic_itmf_cmpl_handler()
932 if ((cmnd_id & SNIC_TAG_MASK) >= snic->max_tag_id) { in snic_itmf_cmpl_handler()
933 SNIC_HOST_ERR(snic->shost, in snic_itmf_cmpl_handler()
934 "Itmf_cmpl: Tag 0x%x out of Range,HdrStat %s\n", in snic_itmf_cmpl_handler()
941 sc = scsi_host_find_tag(snic->shost, cmnd_id & SNIC_TAG_MASK); in snic_itmf_cmpl_handler()
946 atomic64_inc(&snic->s_stats.io.sc_null); in snic_itmf_cmpl_handler()
947 SNIC_HOST_ERR(snic->shost, in snic_itmf_cmpl_handler()
948 "Itmf_cmpl: sc is NULL - Hdr Stat %s Tag 0x%x\n", in snic_itmf_cmpl_handler()
962 struct snic_stats *st = &snic->s_stats; in snic_hba_reset_scsi_cleanup()
965 SNIC_SCSI_DBG(snic->shost, "HBA Reset scsi cleanup.\n"); in snic_hba_reset_scsi_cleanup()
969 act_ios = atomic64_read(&st->io.active); in snic_hba_reset_scsi_cleanup()
970 atomic64_add(act_ios, &st->io.compl); in snic_hba_reset_scsi_cleanup()
971 atomic64_sub(act_ios, &st->io.active); in snic_hba_reset_scsi_cleanup()
973 act_fwreqs = atomic64_read(&st->fw.actv_reqs); in snic_hba_reset_scsi_cleanup()
974 atomic64_sub(act_fwreqs, &st->fw.actv_reqs); in snic_hba_reset_scsi_cleanup()
998 snic_io_hdr_dec(&fwreq->hdr, &typ, &hdr_stat, &cmnd_id, &hid, &ctx); in snic_hba_reset_cmpl_handler()
999 SNIC_HOST_INFO(snic->shost, in snic_hba_reset_cmpl_handler()
1000 "reset_cmpl:Tag %d ctx %lx cmpl status %s HBA Reset Completion received.\n", in snic_hba_reset_cmpl_handler()
1003 SNIC_SCSI_DBG(snic->shost, in snic_hba_reset_cmpl_handler()
1004 "reset_cmpl: type = %x, hdr_stat = %x, cmnd_id = %x, hid = %x, ctx = %lx\n", in snic_hba_reset_cmpl_handler()
1007 /* spl case, host reset issued through ioctl */ in snic_hba_reset_cmpl_handler()
1010 SNIC_HOST_INFO(snic->shost, in snic_hba_reset_cmpl_handler()
1011 "reset_cmpl:Tag %d ctx %lx cmpl stat %s\n", in snic_hba_reset_cmpl_handler()
1013 sc = rqi->sc; in snic_hba_reset_cmpl_handler()
1018 if (cmnd_id >= snic->max_tag_id) { in snic_hba_reset_cmpl_handler()
1019 SNIC_HOST_ERR(snic->shost, in snic_hba_reset_cmpl_handler()
1020 "reset_cmpl: Tag 0x%x out of Range,HdrStat %s\n", in snic_hba_reset_cmpl_handler()
1027 sc = scsi_host_find_tag(snic->shost, cmnd_id); in snic_hba_reset_cmpl_handler()
1030 atomic64_inc(&snic->s_stats.io.sc_null); in snic_hba_reset_cmpl_handler()
1031 SNIC_HOST_ERR(snic->shost, in snic_hba_reset_cmpl_handler()
1032 "reset_cmpl: sc is NULL - Hdr Stat %s Tag 0x%x\n", in snic_hba_reset_cmpl_handler()
1039 SNIC_HOST_INFO(snic->shost, in snic_hba_reset_cmpl_handler()
1040 "reset_cmpl: sc %p rqi %p Tag %d flags 0x%llx\n", in snic_hba_reset_cmpl_handler()
1046 if (!snic->remove_wait) { in snic_hba_reset_cmpl_handler()
1048 SNIC_HOST_ERR(snic->shost, in snic_hba_reset_cmpl_handler()
1049 "reset_cmpl:host reset completed after timeout\n"); in snic_hba_reset_cmpl_handler()
1059 atomic64_inc(&snic->s_stats.io.req_null); in snic_hba_reset_cmpl_handler()
1062 SNIC_HOST_ERR(snic->shost, in snic_hba_reset_cmpl_handler()
1063 "reset_cmpl: rqi is null,Hdr stat %s Tag 0x%x sc 0x%p flags 0x%llx\n", in snic_hba_reset_cmpl_handler()
1080 /* Careful locking between snic_lock and io lock */ in snic_hba_reset_cmpl_handler()
1082 spin_lock_irqsave(&snic->snic_lock, gflags); in snic_hba_reset_cmpl_handler()
1085 spin_unlock_irqrestore(&snic->snic_lock, gflags); in snic_hba_reset_cmpl_handler()
1087 if (snic->remove_wait) in snic_hba_reset_cmpl_handler()
1088 complete(snic->remove_wait); in snic_hba_reset_cmpl_handler()
1091 atomic64_inc(&snic->s_stats.reset.hba_reset_cmpl); in snic_hba_reset_cmpl_handler()
1095 if (snic->config.xpt_type == SNIC_DAS) in snic_hba_reset_cmpl_handler()
1098 SNIC_SCSI_DBG(snic->shost, "reset_cmpl: Queuing discovery work.\n"); in snic_hba_reset_cmpl_handler()
1099 queue_work(snic_glob->event_q, &snic->disc_work); in snic_hba_reset_cmpl_handler()
1107 SNIC_HOST_INFO(snic->shost, "Message Ack Received.\n"); in snic_msg_ack_handler()
1118 struct snic_async_evnotify *aen = &fwreq->u.async_ev; in snic_aen_handler()
1121 snic_io_hdr_dec(&fwreq->hdr, &typ, &hdr_stat, &cmnd_id, &hid, &ctx); in snic_aen_handler()
1122 SNIC_SCSI_DBG(snic->shost, in snic_aen_handler()
1123 "aen: type = %x, hdr_stat = %x, cmnd_id = %x, hid = %x, ctx = %lx\n", in snic_aen_handler()
1126 event_id = le32_to_cpu(aen->ev_id); in snic_aen_handler()
1130 SNIC_HOST_INFO(snic->shost, "aen:TGT_OFFLINE Event Recvd.\n"); in snic_aen_handler()
1134 SNIC_HOST_INFO(snic->shost, "aen:TGT_ONLINE Event Recvd.\n"); in snic_aen_handler()
1138 SNIC_HOST_INFO(snic->shost, "aen:LUN_OFFLINE Event Recvd.\n"); in snic_aen_handler()
1142 SNIC_HOST_INFO(snic->shost, "aen:LUN_ONLINE Event Recvd.\n"); in snic_aen_handler()
1146 SNIC_HOST_INFO(snic->shost, "aen:Config Change Event Recvd.\n"); in snic_aen_handler()
1150 SNIC_HOST_INFO(snic->shost, "aen:TGT_ADD Event Recvd.\n"); in snic_aen_handler()
1154 SNIC_HOST_INFO(snic->shost, "aen:TGT_DEL Event Recvd.\n"); in snic_aen_handler()
1158 SNIC_HOST_INFO(snic->shost, "aen:LUN_ADD Event Recvd.\n"); in snic_aen_handler()
1162 SNIC_HOST_INFO(snic->shost, "aen:LUN_DEL Event Recvd.\n"); in snic_aen_handler()
1166 SNIC_HOST_INFO(snic->shost, "aen:DISC_CMPL Event Recvd.\n"); in snic_aen_handler()
1170 SNIC_HOST_INFO(snic->shost, "aen:Unknown Event Recvd.\n"); in snic_aen_handler()
1180 * Routine to process CQ entries(IO Completions) posted by fw.
1193 if ((fwreq->hdr.type >= SNIC_RSP_REPORT_TGTS_CMPL) && in snic_io_cmpl_handler()
1194 (fwreq->hdr.type <= SNIC_RSP_BOOT_LUNS_CMPL)) in snic_io_cmpl_handler()
1195 atomic64_dec(&snic->s_stats.fw.actv_reqs); in snic_io_cmpl_handler()
1197 SNIC_BUG_ON((fwreq->hdr.type > SNIC_RSP_BOOT_LUNS_CMPL) && in snic_io_cmpl_handler()
1198 (fwreq->hdr.type < SNIC_MSG_ASYNC_EVNOTIFY)); in snic_io_cmpl_handler()
1201 switch (fwreq->hdr.status) { in snic_io_cmpl_handler()
1203 SNIC_HOST_ERR(snic->shost, in snic_io_cmpl_handler()
1204 "sNIC SubSystem is NOT Ready.\n"); in snic_io_cmpl_handler()
1208 SNIC_HOST_ERR(snic->shost, in snic_io_cmpl_handler()
1209 "sNIC SubSystem in Unrecoverable State.\n"); in snic_io_cmpl_handler()
1213 switch (fwreq->hdr.type) { in snic_io_cmpl_handler()
1244 SNIC_SCSI_DBG(snic->shost, in snic_io_cmpl_handler()
1245 "Unknown Firmware completion request type %d\n", in snic_io_cmpl_handler()
1246 fwreq->hdr.type); in snic_io_cmpl_handler()
1251 cmpl_time = jiffies - start; in snic_io_cmpl_handler()
1252 if (cmpl_time > atomic64_read(&snic->s_stats.io.max_cmpl_time)) in snic_io_cmpl_handler()
1253 atomic64_set(&snic->s_stats.io.max_cmpl_time, cmpl_time); in snic_io_cmpl_handler()
1269 struct snic_misc_stats *misc_stats = &snic->s_stats.misc; in snic_fwcq_cmpl_handler()
1271 for (cq_idx = snic->wq_count; cq_idx < snic->cq_count; cq_idx++) { in snic_fwcq_cmpl_handler()
1272 nent_per_cq = vnic_cq_fw_service(&snic->cq[cq_idx], in snic_fwcq_cmpl_handler()
1277 if (nent_per_cq > atomic64_read(&misc_stats->max_cq_ents)) in snic_fwcq_cmpl_handler()
1278 atomic64_set(&misc_stats->max_cq_ents, nent_per_cq); in snic_fwcq_cmpl_handler()
1286 * Use rqi->tm_tag for passing special tags.
1287 * @req_id : aborted request's tag, -1 for lun reset.
1298 int tm_tag = snic_cmd_tag(sc) | rqi->tm_tag; in snic_queue_itmf_req()
1302 SNIC_BUG_ON(!rqi->tm_tag); in snic_queue_itmf_req()
1305 int_to_scsilun(sc->device->lun, &lun); in snic_queue_itmf_req()
1310 snic->config.hid, in snic_queue_itmf_req()
1314 rqi->tgt_id, in snic_queue_itmf_req()
1322 * prior.SNIC_BUG_ON(completion_done(&rqi->done)); in snic_queue_itmf_req()
1327 SNIC_HOST_ERR(snic->shost, in snic_queue_itmf_req()
1328 "qitmf:Queuing ITMF(%d) Req sc %p, rqi %p, req_id %d tag %d Failed, ret = %d\n", in snic_queue_itmf_req()
1331 SNIC_SCSI_DBG(snic->shost, in snic_queue_itmf_req()
1332 "qitmf:Queuing ITMF(%d) Req sc %p, rqi %p, req_id %d, tag %d (req_id)- Success.", in snic_queue_itmf_req()
1349 return -EBUSY; in snic_issue_tm_req()
1351 atomic_inc(&snic->ios_inflight); in snic_issue_tm_req()
1353 SNIC_SCSI_DBG(snic->shost, in snic_issue_tm_req()
1354 "issu_tmreq: Task mgmt req %d. rqi %p w/ tag %x\n", in snic_issue_tm_req()
1367 ret = -ENOMEM; in snic_issue_tm_req()
1376 SNIC_HOST_ERR(snic->shost, in snic_issue_tm_req()
1377 "issu_tmreq: Queueing ITMF(%d) Req, sc %p rqi %p req_id %d tag %x fails err = %d\n", in snic_issue_tm_req()
1380 SNIC_SCSI_DBG(snic->shost, in snic_issue_tm_req()
1381 "issu_tmreq: Queueing ITMF(%d) Req, sc %p, rqi %p, req_id %d tag %x - Success.\n", in snic_issue_tm_req()
1385 atomic_dec(&snic->ios_inflight); in snic_issue_tm_req()
1399 SNIC_SCSI_DBG(snic->shost, "q_abtreq: sc %p, rqi %p, tag %x, tmf %d\n", in snic_queue_abort_req()
1403 rqi->tm_tag |= SNIC_TAG_ABORT; in snic_queue_abort_req()
1423 atomic64_inc(&snic->s_stats.io.req_null); in snic_abort_finish()
1426 SNIC_SCSI_DBG(snic->shost, in snic_abort_finish()
1427 "abt_fini:req info is null tag 0x%x, sc 0x%p flags 0x%llx\n", in snic_abort_finish()
1434 rqi->abts_done = NULL; in snic_abort_finish()
1443 atomic64_inc(&snic->s_stats.abts.drv_tmo); in snic_abort_finish()
1444 SNIC_SCSI_DBG(snic->shost, in snic_abort_finish()
1445 "abt_fini:sc %p Tag %x Driver Timeout.flags 0x%llx\n", in snic_abort_finish()
1457 * the # IO timeouts == 2, will cause the LUN offline. in snic_abort_finish()
1458 * Call scsi_done to complete the IO. in snic_abort_finish()
1460 sc->result = (DID_ERROR << 16); in snic_abort_finish()
1472 SNIC_HOST_INFO(snic->shost, in snic_abort_finish()
1473 "abt_fini: Tag %x, Cmpl Status %s flags 0x%llx\n", in snic_abort_finish()
1499 tgt = starget_to_tgt(scsi_target(sc->device)); in snic_send_abort_and_wait()
1500 if ((snic_tgt_chkready(tgt) != 0) && (tgt->tdata.typ == SNIC_TGT_SAN)) in snic_send_abort_and_wait()
1526 SNIC_HOST_ERR(snic->shost, in snic_send_abort_and_wait()
1527 "abt_cmd: rqi is null. Tag %d flags 0x%llx\n", in snic_send_abort_and_wait()
1535 rqi->abts_done = &tm_done; in snic_send_abort_and_wait()
1542 SNIC_BUG_ON(!rqi->abts_done); in snic_send_abort_and_wait()
1550 * the completion won't be done till mid-layer, since abot in snic_send_abort_and_wait()
1556 SNIC_SCSI_DBG(snic->shost, "send_abt_cmd: TAG 0x%x\n", tag); in snic_send_abort_and_wait()
1563 atomic64_inc(&snic->s_stats.abts.q_fail); in snic_send_abort_and_wait()
1564 SNIC_HOST_ERR(snic->shost, in snic_send_abort_and_wait()
1565 "send_abt_cmd: IO w/ Tag 0x%x fail w/ err %d flags 0x%llx\n", in snic_send_abort_and_wait()
1573 rqi->abts_done = NULL; in snic_send_abort_and_wait()
1583 atomic64_inc(&snic->s_stats.abts.num); in snic_send_abort_and_wait()
1590 SNIC_SCSI_DBG(snic->shost, in snic_send_abort_and_wait()
1591 "send_abt_cmd: sc %p Tag %x flags 0x%llx\n", in snic_send_abort_and_wait()
1599 * Queued an abort IO, wait for its completion. in snic_send_abort_and_wait()
1611 * A SCSI IO is represent by snic_ioreq in the driver.
1612 * The snic_ioreq is linked to the SCSI Cmd, thus a link with the ULP'S IO
1617 struct snic *snic = shost_priv(sc->device->host); in snic_abort_cmd()
1621 SNIC_SCSI_DBG(snic->shost, "abt_cmd:sc %p :0x%x :req = %p :tag = %d\n", in snic_abort_cmd()
1622 sc, sc->cmnd[0], scsi_cmd_to_rq(sc), tag); in snic_abort_cmd()
1625 SNIC_HOST_ERR(snic->shost, in snic_abort_cmd()
1626 "abt_cmd: tag %x Parent Devs are not rdy\n", in snic_abort_cmd()
1641 SNIC_TRC(snic->shost->host_no, tag, (ulong) sc, in snic_abort_cmd()
1642 jiffies_to_msecs(jiffies - start_time), 0, in snic_abort_cmd()
1645 SNIC_SCSI_DBG(snic->shost, in snic_abort_cmd()
1646 "abts: Abort Req Status = %s\n", in snic_abort_cmd()
1666 lr_sdev = lr_sc->device; in snic_is_abts_pending()
1669 for (tag = 0; tag < snic->max_tag_id; tag++) { in snic_is_abts_pending()
1673 sc = scsi_host_find_tag(snic->shost, tag); in snic_is_abts_pending()
1675 if (!sc || (lr_sc && (sc->device != lr_sdev || sc == lr_sc))) { in snic_is_abts_pending()
1689 * Found IO that is still pending w/ firmware and belongs to in snic_is_abts_pending()
1690 * the LUN that is under reset, if lr_sc != NULL in snic_is_abts_pending()
1692 SNIC_SCSI_DBG(snic->shost, "Found IO in %s on LUN\n", in snic_is_abts_pending()
1723 sc = scsi_host_find_tag(snic->shost, tag); in snic_dr_clean_single_req()
1725 /* Ignore Cmd that don't belong to Lun Reset device */ in snic_dr_clean_single_req()
1726 if (!sc || sc->device != lr_sdev) in snic_dr_clean_single_req()
1742 SNIC_SCSI_DBG(snic->shost, in snic_dr_clean_single_req()
1743 "clean_single_req: devrst is not pending sc 0x%p\n", in snic_dr_clean_single_req()
1749 SNIC_SCSI_DBG(snic->shost, in snic_dr_clean_single_req()
1750 "clean_single_req: Found IO in %s on lun\n", in snic_dr_clean_single_req()
1757 * Any pending IO issued prior to reset is expected to be in snic_dr_clean_single_req()
1759 * to indicate the IO is abort pending. in snic_dr_clean_single_req()
1760 * When IO is completed, the IO will be handed over and handled in snic_dr_clean_single_req()
1765 SNIC_BUG_ON(rqi->abts_done); in snic_dr_clean_single_req()
1768 rqi->tm_tag = SNIC_TAG_DEV_RST; in snic_dr_clean_single_req()
1770 SNIC_SCSI_DBG(snic->shost, in snic_dr_clean_single_req()
1771 "clean_single_req:devrst sc 0x%p\n", sc); in snic_dr_clean_single_req()
1775 rqi->abts_done = &tm_done; in snic_dr_clean_single_req()
1778 tgt = starget_to_tgt(scsi_target(sc->device)); in snic_dr_clean_single_req()
1779 if ((snic_tgt_chkready(tgt) != 0) && (tgt->tdata.typ == SNIC_TGT_SAN)) in snic_dr_clean_single_req()
1787 SNIC_HOST_ERR(snic->shost, in snic_dr_clean_single_req()
1788 "clean_single_req_err:sc %p, tag %d abt failed. tm_tag %d flags 0x%llx\n", in snic_dr_clean_single_req()
1789 sc, tag, rqi->tm_tag, CMD_FLAGS(sc)); in snic_dr_clean_single_req()
1794 rqi->abts_done = NULL; in snic_dr_clean_single_req()
1820 rqi->abts_done = NULL; in snic_dr_clean_single_req()
1824 SNIC_HOST_ERR(snic->shost, in snic_dr_clean_single_req()
1825 "clean_single_req_err:sc %p tag %d abt still pending w/ fw, tm_tag %d flags 0x%llx\n", in snic_dr_clean_single_req()
1826 sc, tag, rqi->tm_tag, CMD_FLAGS(sc)); in snic_dr_clean_single_req()
1840 sc->result = (DID_ERROR << 16); in snic_dr_clean_single_req()
1856 struct scsi_device *lr_sdev = lr_sc->device; in snic_dr_clean_pending_req()
1860 for (tag = 0; tag < snic->max_tag_id; tag++) { in snic_dr_clean_pending_req()
1866 SNIC_HOST_ERR(snic->shost, "clean_err:tag = %d\n", tag); in snic_dr_clean_pending_req()
1882 SNIC_SCSI_DBG(snic->shost, "clean_pending_req: Success.\n"); in snic_dr_clean_pending_req()
1888 SNIC_HOST_ERR(snic->shost, in snic_dr_clean_pending_req()
1889 "Failed to Clean Pending IOs on %s device.\n", in snic_dr_clean_pending_req()
1890 dev_name(&lr_sdev->sdev_gendev)); in snic_dr_clean_pending_req()
1913 SNIC_SCSI_DBG(snic->shost, in snic_dr_finish()
1914 "dr_fini: rqi is null tag 0x%x sc 0x%p flags 0x%llx\n", in snic_dr_finish()
1921 rqi->dr_done = NULL; in snic_dr_finish()
1928 SNIC_SCSI_DBG(snic->shost, in snic_dr_finish()
1929 "dr_fini: Tag %x Dev Reset Timedout. flags 0x%llx\n", in snic_dr_finish()
1938 SNIC_SCSI_DBG(snic->shost, in snic_dr_finish()
1939 "dr_fini: Tag %x Dev Reset cmpl\n", in snic_dr_finish()
1945 SNIC_HOST_ERR(snic->shost, in snic_dr_finish()
1946 "dr_fini:Device Reset completed& failed.Tag = %x lr_status %s flags 0x%llx\n", in snic_dr_finish()
1956 * If any of these fail, then LUN Reset fails. in snic_dr_finish()
1958 * the lun reset command. If all cmds get cleaned, the LUN Reset in snic_dr_finish()
1965 SNIC_SCSI_DBG(snic->shost, in snic_dr_finish()
1966 "dr_fini: Device Reset Failed since could not abort all IOs. Tag = %x.\n", in snic_dr_finish()
1972 /* Cleanup LUN Reset Command */ in snic_dr_finish()
1999 /* Add special tag for device reset */ in snic_queue_dr_req()
2000 rqi->tm_tag |= SNIC_TAG_DEV_RST; in snic_queue_dr_req()
2020 SNIC_HOST_ERR(snic->shost, in snic_send_dr_and_wait()
2021 "send_dr: rqi is null, Tag 0x%x flags 0x%llx\n", in snic_send_dr_and_wait()
2035 SNIC_SCSI_DBG(snic->shost, "dr: TAG = %x\n", tag); in snic_send_dr_and_wait()
2037 rqi->dr_done = &tm_done; in snic_send_dr_and_wait()
2038 SNIC_BUG_ON(!rqi->dr_done); in snic_send_dr_and_wait()
2045 * This logic still makes LUN Reset is inevitable. in snic_send_dr_and_wait()
2050 SNIC_HOST_ERR(snic->shost, in snic_send_dr_and_wait()
2051 "send_dr: IO w/ Tag 0x%x Failed err = %d. flags 0x%llx\n", in snic_send_dr_and_wait()
2059 rqi->dr_done = NULL; in snic_send_dr_and_wait()
2080 * auxillary funciton to check lun reset op is supported or not
2088 if (tgt->tdata.typ == SNIC_TGT_DAS) in snic_dev_reset_supported()
2106 start_time = rqi->start_time; in snic_unlink_and_release_req()
2116 SNIC_TRC(snic->shost->host_no, snic_cmd_tag(sc), (ulong) sc, in snic_unlink_and_release_req()
2117 jiffies_to_msecs(jiffies - start_time), (ulong) rqi, in snic_unlink_and_release_req()
2122 * SCSI Eh thread issues a LUN Reset when one or more commands on a LUN
2129 struct Scsi_Host *shost = sc->device->host; in snic_device_reset()
2137 SNIC_SCSI_DBG(shost, "dev_reset:sc %p :0x%x :req = %p :tag = %d\n", in snic_device_reset()
2138 sc, sc->cmnd[0], scsi_cmd_to_rq(sc), in snic_device_reset()
2140 dr_supp = snic_dev_reset_supported(sc->device); in snic_device_reset()
2142 /* device reset op is not supported */ in snic_device_reset()
2143 SNIC_HOST_INFO(shost, "LUN Reset Op not supported.\n"); in snic_device_reset()
2151 SNIC_HOST_ERR(shost, "Devrst: Parent Devs are not online.\n"); in snic_device_reset()
2156 /* There is no tag when lun reset is issue through ioctl. */ in snic_device_reset()
2158 SNIC_HOST_INFO(snic->shost, in snic_device_reset()
2159 "Devrst: LUN Reset Recvd thru IOCTL.\n"); in snic_device_reset()
2171 rqi->tm_tag = SNIC_TAG_IOCTL_DEV_RST; in snic_device_reset()
2172 rqi->sc = sc; in snic_device_reset()
2177 SNIC_HOST_ERR(snic->shost, in snic_device_reset()
2178 "Devrst: IO w/ Tag %x Failed w/ err = %d\n", in snic_device_reset()
2189 SNIC_TRC(snic->shost->host_no, tag, (ulong) sc, in snic_device_reset()
2190 jiffies_to_msecs(jiffies - start_time), in snic_device_reset()
2193 SNIC_SCSI_DBG(snic->shost, in snic_device_reset()
2194 "Devrst: Returning from Device Reset : %s\n", in snic_device_reset()
2204 * Host Reset is the highest level of error recovery. If this fails, then
2208 * snic_issue_hba_reset : Queues FW Reset Request.
2218 int ret = -ENOMEM; in snic_issue_hba_reset()
2222 ret = -ENOMEM; in snic_issue_hba_reset()
2230 SNIC_HOST_INFO(snic->shost, "issu_hr:Host reset thru ioctl.\n"); in snic_issue_hba_reset()
2231 rqi->sc = sc; in snic_issue_hba_reset()
2242 snic->remove_wait = &wait; in snic_issue_hba_reset()
2246 snic_io_hdr_enc(&req->hdr, SNIC_REQ_HBA_RESET, 0, snic_cmd_tag(sc), in snic_issue_hba_reset()
2247 snic->config.hid, 0, (ulong) rqi); in snic_issue_hba_reset()
2249 req->u.reset.flags = 0; in snic_issue_hba_reset()
2253 SNIC_HOST_ERR(snic->shost, in snic_issue_hba_reset()
2254 "issu_hr:Queuing HBA Reset Failed. w err %d\n", in snic_issue_hba_reset()
2263 atomic64_inc(&snic->s_stats.reset.hba_resets); in snic_issue_hba_reset()
2264 SNIC_HOST_INFO(snic->shost, "Queued HBA Reset Successfully.\n"); in snic_issue_hba_reset()
2266 wait_for_completion_timeout(snic->remove_wait, in snic_issue_hba_reset()
2270 SNIC_HOST_ERR(snic->shost, "reset_cmpl: Reset Timedout.\n"); in snic_issue_hba_reset()
2271 ret = -ETIMEDOUT; in snic_issue_hba_reset()
2277 snic->remove_wait = NULL; in snic_issue_hba_reset()
2291 snic->remove_wait = NULL; in snic_issue_hba_reset()
2300 SNIC_HOST_ERR(snic->shost, in snic_issue_hba_reset()
2301 "reset:HBA Reset Failed w/ err = %d.\n", in snic_issue_hba_reset()
2318 spin_lock_irqsave(&snic->snic_lock, flags); in snic_reset()
2320 spin_unlock_irqrestore(&snic->snic_lock, flags); in snic_reset()
2321 SNIC_HOST_INFO(shost, "reset:prev reset is in progress\n"); in snic_reset()
2330 spin_unlock_irqrestore(&snic->snic_lock, flags); in snic_reset()
2334 while (atomic_read(&snic->ios_inflight)) in snic_reset()
2340 "reset:Host Reset Failed w/ err %d.\n", in snic_reset()
2342 spin_lock_irqsave(&snic->snic_lock, flags); in snic_reset()
2344 spin_unlock_irqrestore(&snic->snic_lock, flags); in snic_reset()
2345 atomic64_inc(&snic->s_stats.reset.hba_reset_fail); in snic_reset()
2361 * Host Reset is the highest level of error recovery. If this fails, then
2367 struct Scsi_Host *shost = sc->device->host; in snic_host_reset()
2372 "host reset:sc %p sc_cmd 0x%x req %p tag %d flags 0x%llx\n", in snic_host_reset()
2373 sc, sc->cmnd[0], scsi_cmd_to_rq(sc), in snic_host_reset()
2378 SNIC_TRC(shost->host_no, snic_cmd_tag(sc), (ulong) sc, in snic_host_reset()
2379 jiffies_to_msecs(jiffies - start_time), in snic_host_reset()
2393 SNIC_SCSI_DBG(snic->shost, in snic_cmpl_pending_tmreq()
2394 "Completing Pending TM Req sc %p, state %s flags 0x%llx\n", in snic_cmpl_pending_tmreq()
2408 if (rqi->dr_done) in snic_cmpl_pending_tmreq()
2409 complete(rqi->dr_done); in snic_cmpl_pending_tmreq()
2410 else if (rqi->abts_done) in snic_cmpl_pending_tmreq()
2411 complete(rqi->abts_done); in snic_cmpl_pending_tmreq()
2427 SNIC_SCSI_DBG(snic->shost, "sc_clean: scsi cleanup.\n"); in snic_scsi_cleanup()
2429 for (tag = 0; tag < snic->max_tag_id; tag++) { in snic_scsi_cleanup()
2436 sc = scsi_host_find_tag(snic->shost, tag); in snic_scsi_cleanup()
2445 * When FW Completes reset w/o sending completions in snic_scsi_cleanup()
2461 SNIC_SCSI_DBG(snic->shost, in snic_scsi_cleanup()
2462 "sc_clean: sc %p, rqi %p, tag %d flags 0x%llx\n", in snic_scsi_cleanup()
2468 st_time = rqi->start_time; in snic_scsi_cleanup()
2470 SNIC_HOST_INFO(snic->shost, in snic_scsi_cleanup()
2471 "sc_clean: Releasing rqi %p : flags 0x%llx\n", in snic_scsi_cleanup()
2477 sc->result = DID_TRANSPORT_DISRUPTED << 16; in snic_scsi_cleanup()
2478 SNIC_HOST_INFO(snic->shost, in snic_scsi_cleanup()
2479 … "sc_clean: DID_TRANSPORT_DISRUPTED for sc %p, Tag %d flags 0x%llx rqi %p duration %u msecs\n", in snic_scsi_cleanup()
2480 sc, scsi_cmd_to_rq(sc)->tag, CMD_FLAGS(sc), rqi, in snic_scsi_cleanup()
2481 jiffies_to_msecs(jiffies - st_time)); in snic_scsi_cleanup()
2483 /* Update IO stats */ in snic_scsi_cleanup()
2484 snic_stats_update_io_cmpl(&snic->s_stats); in snic_scsi_cleanup()
2486 SNIC_TRC(snic->shost->host_no, tag, (ulong) sc, in snic_scsi_cleanup()
2487 jiffies_to_msecs(jiffies - st_time), 0, in snic_scsi_cleanup()
2498 SNIC_HOST_INFO(snic->shost, "Shutdown time SCSI Cleanup.\n"); in snic_shutdown_scsi_cleanup()
2528 SNIC_SCSI_DBG(snic->shost, in snic_internal_abort_io()
2529 "internal_abts: dev rst not pending sc 0x%p\n", in snic_internal_abort_io()
2537 SNIC_SCSI_DBG(snic->shost, in snic_internal_abort_io()
2538 "internal_abts: IO not yet issued sc 0x%p tag 0x%x flags 0x%llx state %d\n", in snic_internal_abort_io()
2551 rqi->tm_tag = SNIC_TAG_DEV_RST; in snic_internal_abort_io()
2552 SNIC_SCSI_DBG(snic->shost, "internal_abts:dev rst sc %p\n", sc); in snic_internal_abort_io()
2555 SNIC_SCSI_DBG(snic->shost, "internal_abts: Issuing abts tag %x\n", in snic_internal_abort_io()
2557 SNIC_BUG_ON(rqi->abts_done); in snic_internal_abort_io()
2562 SNIC_HOST_ERR(snic->shost, in snic_internal_abort_io()
2563 "internal_abts: Tag = %x , Failed w/ err = %d\n", in snic_internal_abort_io()
2603 return -1; in snic_tgt_scsi_abort_io()
2606 SNIC_SCSI_DBG(snic->shost, "tgt_abt_io: Cleaning Pending IOs.\n"); in snic_tgt_scsi_abort_io()
2608 if (tgt->tdata.typ == SNIC_TGT_DAS) in snic_tgt_scsi_abort_io()
2613 for (tag = 0; tag < snic->max_tag_id; tag++) { in snic_tgt_scsi_abort_io()
2617 sc = scsi_host_find_tag(snic->shost, tag); in snic_tgt_scsi_abort_io()
2624 sc_tgt = starget_to_tgt(scsi_target(sc->device)); in snic_tgt_scsi_abort_io()
2634 SNIC_HOST_ERR(snic->shost, in snic_tgt_scsi_abort_io()
2635 "tgt_abt_io: Tag %x, Failed w err = %d\n", in snic_tgt_scsi_abort_io()
2645 SNIC_SCSI_DBG(snic->shost, "tgt_abt_io: abt_cnt = %d\n", abt_cnt); in snic_tgt_scsi_abort_io()