Lines Matching refs:sc
88 static void mptscsih_report_queue_full(struct scsi_cmnd *sc, SCSIIOReply_t *pScsiReply, SCSIIOReque…
94 static void mptscsih_copy_sense_data(struct scsi_cmnd *sc, MPT_SCSI_HOST *hd, MPT_FRAME_HDR *mf, SC…
492 mptscsih_info_scsiio(MPT_ADAPTER *ioc, struct scsi_cmnd *sc, SCSIIOReply_t * pScsiReply) in mptscsih_info_scsiio() argument
594 scsi_print_command(sc); in mptscsih_info_scsiio()
598 "resid = %d\n", ioc->name, scsi_bufflen(sc), sc->underflow, in mptscsih_info_scsiio()
599 scsi_get_resid(sc)); in mptscsih_info_scsiio()
602 le32_to_cpu(pScsiReply->TransferCount), sc->result); in mptscsih_info_scsiio()
609 skey = sc->sense_buffer[2] & 0x0F; in mptscsih_info_scsiio()
610 asc = sc->sense_buffer[12]; in mptscsih_info_scsiio()
611 ascq = sc->sense_buffer[13]; in mptscsih_info_scsiio()
645 struct scsi_cmnd *sc; in mptscsih_io_done() local
668 sc = mptscsih_getclear_scsi_lookup(ioc, req_idx); in mptscsih_io_done()
669 if (sc == NULL) { in mptscsih_io_done()
684 if ((unsigned char *)mf != sc->host_scribble) { in mptscsih_io_done()
689 sc->host_scribble = NULL; in mptscsih_io_done()
690 sc->result = DID_OK << 16; /* Set default reply as OK */ in mptscsih_io_done()
697 ioc->name, mf, mr, sc, req_idx, pScsiReply->TaskTag)); in mptscsih_io_done()
701 ioc->name, mf, mr, sc, req_idx)); in mptscsih_io_done()
717 scsi_set_resid(sc, scsi_bufflen(sc) - xfer_cnt); in mptscsih_io_done()
734 mptscsih_copy_sense_data(sc, hd, mf, pScsiReply); in mptscsih_io_done()
743 sc->device->host->host_no, sc->device->channel, in mptscsih_io_done()
744 sc->device->id, sc->device->lun, in mptscsih_io_done()
755 sc->result = SAM_STAT_BUSY; in mptscsih_io_done()
760 sc->result = DID_BAD_TARGET << 16; in mptscsih_io_done()
766 sc->result = DID_NO_CONNECT << 16; in mptscsih_io_done()
769 sc->result = DID_REQUEUE << 16; in mptscsih_io_done()
774 vdevice = sc->device->hostdata; in mptscsih_io_done()
791 sc->result = (DID_BUS_BUSY << 16); in mptscsih_io_done()
804 sc->result = DID_ERROR << 16; in mptscsih_io_done()
817 sc->result = DID_RESET << 16; in mptscsih_io_done()
822 scsi_set_resid(sc, scsi_bufflen(sc) - xfer_cnt); in mptscsih_io_done()
823 if((xfer_cnt==0)||(sc->underflow > xfer_cnt)) in mptscsih_io_done()
824 sc->result=DID_SOFT_ERROR << 16; in mptscsih_io_done()
826 sc->result = (DID_OK << 16) | scsi_status; in mptscsih_io_done()
829 ioc->name, sc->result, sc->device->channel, sc->device->id)); in mptscsih_io_done()
837 sc->result = (DID_OK << 16) | scsi_status; in mptscsih_io_done()
843 if (xfer_cnt < sc->underflow) { in mptscsih_io_done()
845 sc->result = SAM_STAT_BUSY; in mptscsih_io_done()
847 sc->result = DID_SOFT_ERROR << 16; in mptscsih_io_done()
852 sc->result = DID_SOFT_ERROR << 16; in mptscsih_io_done()
856 sc->result = DID_RESET << 16; in mptscsih_io_done()
863 ioc->name, sc->underflow)); in mptscsih_io_done()
870 mptscsih_report_queue_full(sc, pScsiReply, pScsiReq); in mptscsih_io_done()
875 scsi_set_resid(sc, 0); in mptscsih_io_done()
878 sc->result = (DID_OK << 16) | scsi_status; in mptscsih_io_done()
889 mptscsih_report_queue_full(sc, pScsiReply, pScsiReq); in mptscsih_io_done()
898 sc->result = DID_SOFT_ERROR << 16; in mptscsih_io_done()
902 sc->result = DID_RESET << 16; in mptscsih_io_done()
912 if (sc->result == MPI_SCSI_STATUS_TASK_SET_FULL) in mptscsih_io_done()
913 mptscsih_report_queue_full(sc, pScsiReply, pScsiReq); in mptscsih_io_done()
922 sc->result = DID_SOFT_ERROR << 16; in mptscsih_io_done()
938 sc->result = DID_SOFT_ERROR << 16; in mptscsih_io_done()
944 if (sc->result && (ioc->debug_level & MPT_DEBUG_REPLY)) in mptscsih_io_done()
945 mptscsih_info_scsiio(ioc, sc, pScsiReply); in mptscsih_io_done()
951 scsi_dma_unmap(sc); in mptscsih_io_done()
953 sc->scsi_done(sc); /* Issue the command callback */ in mptscsih_io_done()
974 struct scsi_cmnd *sc; in mptscsih_flush_running_cmds() local
980 sc = mptscsih_getclear_scsi_lookup(ioc, ii); in mptscsih_flush_running_cmds()
981 if (!sc) in mptscsih_flush_running_cmds()
990 if ((unsigned char *)mf != sc->host_scribble) in mptscsih_flush_running_cmds()
992 scsi_dma_unmap(sc); in mptscsih_flush_running_cmds()
993 sc->result = DID_RESET << 16; in mptscsih_flush_running_cmds()
994 sc->host_scribble = NULL; in mptscsih_flush_running_cmds()
995 sdev_printk(KERN_INFO, sc->device, MYIOC_s_FMT in mptscsih_flush_running_cmds()
997 " mf = %p, idx=%x\n", ioc->name, channel, id, sc, mf, ii); in mptscsih_flush_running_cmds()
998 sc->scsi_done(sc); in mptscsih_flush_running_cmds()
1021 struct scsi_cmnd *sc; in mptscsih_search_running_cmds() local
1028 if ((sc = ioc->ScsiLookup[ii]) != NULL) { in mptscsih_search_running_cmds()
1047 if ((unsigned char *)mf != sc->host_scribble) in mptscsih_search_running_cmds()
1053 scsi_dma_unmap(sc); in mptscsih_search_running_cmds()
1054 sc->host_scribble = NULL; in mptscsih_search_running_cmds()
1055 sc->result = DID_NO_CONNECT << 16; in mptscsih_search_running_cmds()
1056 sdev_printk(KERN_INFO, sc->device, MYIOC_s_FMT "completing cmds: fw_channel %d," in mptscsih_search_running_cmds()
1058 vdevice->vtarget->id, sc, mf, ii); in mptscsih_search_running_cmds()
1059 sc->scsi_done(sc); in mptscsih_search_running_cmds()
1082 mptscsih_report_queue_full(struct scsi_cmnd *sc, SCSIIOReply_t *pScsiReply, SCSIIORequest_t *pScsiR… in mptscsih_report_queue_full() argument
1088 if (sc->device == NULL) in mptscsih_report_queue_full()
1090 if (sc->device->host == NULL) in mptscsih_report_queue_full()
1092 if ((hd = shost_priv(sc->device->host)) == NULL) in mptscsih_report_queue_full()
1097 ioc->name, 0, sc->device->id, sc->device->lun)); in mptscsih_report_queue_full()
2491 mptscsih_copy_sense_data(struct scsi_cmnd *sc, MPT_SCSI_HOST *hd, MPT_FRAME_HDR *mf, SCSIIOReply_t … in mptscsih_copy_sense_data() argument
2501 vdevice = sc->device->hostdata; in mptscsih_copy_sense_data()
2510 memcpy(sc->sense_buffer, sense_data, SNS_LEN(sc)); in mptscsih_copy_sense_data()
2524 (sc->device->channel << 8) | sc->device->id; in mptscsih_copy_sense_data()
2615 SCPNT_TO_LOOKUP_IDX(MPT_ADAPTER *ioc, struct scsi_cmnd *sc) in SCPNT_TO_LOOKUP_IDX() argument
2622 if (ioc->ScsiLookup[i] == sc) { in SCPNT_TO_LOOKUP_IDX()