Lines Matching refs:scmd

933 	return ioc->scsi_lookup[smid - 1].scmd;  in _scsih_scsi_lookup_get()
948 struct scsi_cmnd *scmd; in _scsih_scsi_lookup_get_clear() local
951 scmd = ioc->scsi_lookup[smid - 1].scmd; in _scsih_scsi_lookup_get_clear()
952 ioc->scsi_lookup[smid - 1].scmd = NULL; in _scsih_scsi_lookup_get_clear()
955 return scmd; in _scsih_scsi_lookup_get_clear()
970 *scmd) in _scsih_scsi_lookup_find_by_scmd()
979 if (ioc->scsi_lookup[i].scmd == scmd) { in _scsih_scsi_lookup_find_by_scmd()
1010 if (ioc->scsi_lookup[i].scmd && in _scsih_scsi_lookup_find_by_target()
1011 (ioc->scsi_lookup[i].scmd->device->id == id && in _scsih_scsi_lookup_find_by_target()
1012 ioc->scsi_lookup[i].scmd->device->channel == channel)) { in _scsih_scsi_lookup_find_by_target()
1044 if (ioc->scsi_lookup[i].scmd && in _scsih_scsi_lookup_find_by_lun()
1045 (ioc->scsi_lookup[i].scmd->device->id == id && in _scsih_scsi_lookup_find_by_lun()
1046 ioc->scsi_lookup[i].scmd->device->channel == channel && in _scsih_scsi_lookup_find_by_lun()
1047 ioc->scsi_lookup[i].scmd->device->lun == lun)) { in _scsih_scsi_lookup_find_by_lun()
2109 if (scsi_lookup->scmd == NULL) in mpt3sas_scsih_issue_tm()
2156 _scsih_tm_display_info(struct MPT3SAS_ADAPTER *ioc, struct scsi_cmnd *scmd) in _scsih_tm_display_info() argument
2158 struct scsi_target *starget = scmd->device->sdev_target; in _scsih_tm_display_info()
2168 scsi_print_command(scmd); in _scsih_tm_display_info()
2208 _scsih_abort(struct scsi_cmnd *scmd) in _scsih_abort() argument
2210 struct MPT3SAS_ADAPTER *ioc = shost_priv(scmd->device->host); in _scsih_abort()
2216 sdev_printk(KERN_INFO, scmd->device, in _scsih_abort()
2217 "attempting task abort! scmd(%p)\n", scmd); in _scsih_abort()
2218 _scsih_tm_display_info(ioc, scmd); in _scsih_abort()
2220 sas_device_priv_data = scmd->device->hostdata; in _scsih_abort()
2222 sdev_printk(KERN_INFO, scmd->device, in _scsih_abort()
2223 "device been deleted! scmd(%p)\n", scmd); in _scsih_abort()
2224 scmd->result = DID_NO_CONNECT << 16; in _scsih_abort()
2225 scmd->scsi_done(scmd); in _scsih_abort()
2231 smid = _scsih_scsi_lookup_find_by_scmd(ioc, scmd); in _scsih_abort()
2233 scmd->result = DID_RESET << 16; in _scsih_abort()
2242 scmd->result = DID_RESET << 16; in _scsih_abort()
2250 r = mpt3sas_scsih_issue_tm(ioc, handle, scmd->device->channel, in _scsih_abort()
2251 scmd->device->id, scmd->device->lun, in _scsih_abort()
2255 sdev_printk(KERN_INFO, scmd->device, "task abort: %s scmd(%p)\n", in _scsih_abort()
2256 ((r == SUCCESS) ? "SUCCESS" : "FAILED"), scmd); in _scsih_abort()
2267 _scsih_dev_reset(struct scsi_cmnd *scmd) in _scsih_dev_reset() argument
2269 struct MPT3SAS_ADAPTER *ioc = shost_priv(scmd->device->host); in _scsih_dev_reset()
2276 sdev_printk(KERN_INFO, scmd->device, in _scsih_dev_reset()
2277 "attempting device reset! scmd(%p)\n", scmd); in _scsih_dev_reset()
2278 _scsih_tm_display_info(ioc, scmd); in _scsih_dev_reset()
2280 sas_device_priv_data = scmd->device->hostdata; in _scsih_dev_reset()
2282 sdev_printk(KERN_INFO, scmd->device, in _scsih_dev_reset()
2283 "device been deleted! scmd(%p)\n", scmd); in _scsih_dev_reset()
2284 scmd->result = DID_NO_CONNECT << 16; in _scsih_dev_reset()
2285 scmd->scsi_done(scmd); in _scsih_dev_reset()
2304 scmd->result = DID_RESET << 16; in _scsih_dev_reset()
2309 r = mpt3sas_scsih_issue_tm(ioc, handle, scmd->device->channel, in _scsih_dev_reset()
2310 scmd->device->id, scmd->device->lun, in _scsih_dev_reset()
2314 sdev_printk(KERN_INFO, scmd->device, "device reset: %s scmd(%p)\n", in _scsih_dev_reset()
2315 ((r == SUCCESS) ? "SUCCESS" : "FAILED"), scmd); in _scsih_dev_reset()
2326 _scsih_target_reset(struct scsi_cmnd *scmd) in _scsih_target_reset() argument
2328 struct MPT3SAS_ADAPTER *ioc = shost_priv(scmd->device->host); in _scsih_target_reset()
2334 struct scsi_target *starget = scmd->device->sdev_target; in _scsih_target_reset()
2337 scmd); in _scsih_target_reset()
2338 _scsih_tm_display_info(ioc, scmd); in _scsih_target_reset()
2340 sas_device_priv_data = scmd->device->hostdata; in _scsih_target_reset()
2343 scmd); in _scsih_target_reset()
2344 scmd->result = DID_NO_CONNECT << 16; in _scsih_target_reset()
2345 scmd->scsi_done(scmd); in _scsih_target_reset()
2364 scmd->result = DID_RESET << 16; in _scsih_target_reset()
2369 r = mpt3sas_scsih_issue_tm(ioc, handle, scmd->device->channel, in _scsih_target_reset()
2370 scmd->device->id, 0, MPI2_SCSITASKMGMT_TASKTYPE_TARGET_RESET, 0, in _scsih_target_reset()
2375 ((r == SUCCESS) ? "SUCCESS" : "FAILED"), scmd); in _scsih_target_reset()
2387 _scsih_host_reset(struct scsi_cmnd *scmd) in _scsih_host_reset() argument
2389 struct MPT3SAS_ADAPTER *ioc = shost_priv(scmd->device->host); in _scsih_host_reset()
2393 ioc->name, scmd); in _scsih_host_reset()
2394 scsi_print_command(scmd); in _scsih_host_reset()
2408 ioc->name, ((r == SUCCESS) ? "SUCCESS" : "FAILED"), scmd); in _scsih_host_reset()
3390 struct scsi_cmnd *scmd; in _scsih_flush_running_cmds() local
3395 scmd = _scsih_scsi_lookup_get_clear(ioc, smid); in _scsih_flush_running_cmds()
3396 if (!scmd) in _scsih_flush_running_cmds()
3400 scsi_dma_unmap(scmd); in _scsih_flush_running_cmds()
3402 scmd->result = DID_NO_CONNECT << 16; in _scsih_flush_running_cmds()
3404 scmd->result = DID_RESET << 16; in _scsih_flush_running_cmds()
3405 scmd->scsi_done(scmd); in _scsih_flush_running_cmds()
3422 _scsih_setup_eedp(struct MPT3SAS_ADAPTER *ioc, struct scsi_cmnd *scmd, in _scsih_setup_eedp() argument
3426 unsigned char prot_op = scsi_get_prot_op(scmd); in _scsih_setup_eedp()
3427 unsigned char prot_type = scsi_get_prot_type(scmd); in _scsih_setup_eedp()
3453 cpu_to_be32(scsi_get_lba(scmd)); in _scsih_setup_eedp()
3467 cpu_to_le16(scmd->device->sector_size); in _scsih_setup_eedp()
3479 _scsih_eedp_error_handling(struct scsi_cmnd *scmd, u16 ioc_status) in _scsih_eedp_error_handling() argument
3497 scsi_build_sense_buffer(0, scmd->sense_buffer, ILLEGAL_REQUEST, 0x10, in _scsih_eedp_error_handling()
3499 scmd->result = DRIVER_SENSE << 24 | (DID_ABORT << 16) | in _scsih_eedp_error_handling()
3516 _scsih_qcmd(struct Scsi_Host *shost, struct scsi_cmnd *scmd) in _scsih_qcmd() argument
3528 scsi_print_command(scmd); in _scsih_qcmd()
3531 sas_device_priv_data = scmd->device->hostdata; in _scsih_qcmd()
3533 scmd->result = DID_NO_CONNECT << 16; in _scsih_qcmd()
3534 scmd->scsi_done(scmd); in _scsih_qcmd()
3539 scmd->result = DID_NO_CONNECT << 16; in _scsih_qcmd()
3540 scmd->scsi_done(scmd); in _scsih_qcmd()
3549 scmd->result = DID_NO_CONNECT << 16; in _scsih_qcmd()
3550 scmd->scsi_done(scmd); in _scsih_qcmd()
3561 scmd->result = DID_NO_CONNECT << 16; in _scsih_qcmd()
3562 scmd->scsi_done(scmd); in _scsih_qcmd()
3569 if (scmd->sc_data_direction == DMA_FROM_DEVICE) in _scsih_qcmd()
3571 else if (scmd->sc_data_direction == DMA_TO_DEVICE) in _scsih_qcmd()
3580 scmd->cmd_len != 32) in _scsih_qcmd()
3583 smid = mpt3sas_base_get_smid_scsiio(ioc, ioc->scsi_io_cb_idx, scmd); in _scsih_qcmd()
3591 _scsih_setup_eedp(ioc, scmd, mpi_request); in _scsih_qcmd()
3593 if (scmd->cmd_len == 32) in _scsih_qcmd()
3602 mpi_request->DataLength = cpu_to_le32(scsi_bufflen(scmd)); in _scsih_qcmd()
3604 mpi_request->IoFlags = cpu_to_le16(scmd->cmd_len); in _scsih_qcmd()
3612 memcpy(mpi_request->CDB.CDB32, scmd->cmnd, scmd->cmd_len); in _scsih_qcmd()
3615 if (ioc->build_sg_scmd(ioc, scmd, smid)) { in _scsih_qcmd()
3624 mpi_request->IoFlags = cpu_to_le16(scmd->cmd_len | in _scsih_qcmd()
3674 _scsih_scsi_ioc_info(struct MPT3SAS_ADAPTER *ioc, struct scsi_cmnd *scmd, in _scsih_scsi_ioc_info() argument
3689 struct scsi_target *starget = scmd->device->sdev_target; in _scsih_scsi_ioc_info()
3810 scsi_print_command(scmd); in _scsih_scsi_ioc_info()
3838 ioc->name, scsi_bufflen(scmd), scmd->underflow, in _scsih_scsi_ioc_info()
3839 scsi_get_resid(scmd)); in _scsih_scsi_ioc_info()
3843 le32_to_cpu(mpi_reply->TransferCount), scmd->result); in _scsih_scsi_ioc_info()
3851 _scsih_normalize_sense(scmd->sense_buffer, &data); in _scsih_scsi_ioc_info()
4051 struct scsi_cmnd *scmd; in _scsih_io_done() local
4061 scmd = _scsih_scsi_lookup_get_clear(ioc, smid); in _scsih_io_done()
4062 if (scmd == NULL) in _scsih_io_done()
4068 scmd->result = DID_OK << 16; in _scsih_io_done()
4072 sas_device_priv_data = scmd->device->hostdata; in _scsih_io_done()
4075 scmd->result = DID_NO_CONNECT << 16; in _scsih_io_done()
4094 scsi_set_resid(scmd, scsi_bufflen(scmd) - xfer_cnt); in _scsih_io_done()
4115 memcpy(scmd->sense_buffer, sense_data, sz); in _scsih_io_done()
4116 _scsih_normalize_sense(scmd->sense_buffer, &data); in _scsih_io_done()
4127 scmd->result = SAM_STAT_BUSY; in _scsih_io_done()
4131 scmd->result = DID_NO_CONNECT << 16; in _scsih_io_done()
4136 scmd->result = DID_TRANSPORT_DISRUPTED << 16; in _scsih_io_done()
4140 if (scmd->retries > 2) { in _scsih_io_done()
4141 scmd->result = DID_NO_CONNECT << 16; in _scsih_io_done()
4142 scsi_device_set_state(scmd->device, in _scsih_io_done()
4145 scmd->result = DID_SOFT_ERROR << 16; in _scsih_io_done()
4146 scmd->device->expecting_cc_ua = 1; in _scsih_io_done()
4150 scmd->result = DID_SOFT_ERROR << 16; in _scsih_io_done()
4154 scmd->result = DID_RESET << 16; in _scsih_io_done()
4158 if ((xfer_cnt == 0) || (scmd->underflow > xfer_cnt)) in _scsih_io_done()
4159 scmd->result = DID_SOFT_ERROR << 16; in _scsih_io_done()
4161 scmd->result = (DID_OK << 16) | scsi_status; in _scsih_io_done()
4165 scmd->result = (DID_OK << 16) | scsi_status; in _scsih_io_done()
4170 if (xfer_cnt < scmd->underflow) { in _scsih_io_done()
4172 scmd->result = SAM_STAT_BUSY; in _scsih_io_done()
4174 scmd->result = DID_SOFT_ERROR << 16; in _scsih_io_done()
4177 scmd->result = DID_SOFT_ERROR << 16; in _scsih_io_done()
4179 scmd->result = DID_RESET << 16; in _scsih_io_done()
4180 else if (!xfer_cnt && scmd->cmnd[0] == REPORT_LUNS) { in _scsih_io_done()
4183 scmd->result = (DRIVER_SENSE << 24) | in _scsih_io_done()
4185 scmd->sense_buffer[0] = 0x70; in _scsih_io_done()
4186 scmd->sense_buffer[2] = ILLEGAL_REQUEST; in _scsih_io_done()
4187 scmd->sense_buffer[12] = 0x20; in _scsih_io_done()
4188 scmd->sense_buffer[13] = 0; in _scsih_io_done()
4193 scsi_set_resid(scmd, 0); in _scsih_io_done()
4196 scmd->result = (DID_OK << 16) | scsi_status; in _scsih_io_done()
4201 scmd->result = DID_SOFT_ERROR << 16; in _scsih_io_done()
4203 scmd->result = DID_RESET << 16; in _scsih_io_done()
4209 _scsih_eedp_error_handling(scmd, ioc_status); in _scsih_io_done()
4221 scmd->result = DID_SOFT_ERROR << 16; in _scsih_io_done()
4227 if (scmd->result && (ioc->logging_level & MPT_DEBUG_REPLY)) in _scsih_io_done()
4228 _scsih_scsi_ioc_info(ioc , scmd, mpi_reply, smid); in _scsih_io_done()
4233 scsi_dma_unmap(scmd); in _scsih_io_done()
4235 scmd->scsi_done(scmd); in _scsih_io_done()
5385 struct scsi_cmnd *scmd; in _scsih_sas_broadcast_primitive_event() local
5428 scmd = _scsih_scsi_lookup_get(ioc, smid); in _scsih_sas_broadcast_primitive_event()
5429 if (!scmd) in _scsih_sas_broadcast_primitive_event()
5431 sdev = scmd->device; in _scsih_sas_broadcast_primitive_event()
5458 "QUERY_TASK: scmd(%p)\n", scmd); in _scsih_sas_broadcast_primitive_event()
5467 ioc_status, scmd); in _scsih_sas_broadcast_primitive_event()
5499 "scmd(%p)\n", scmd); in _scsih_sas_broadcast_primitive_event()
5507 task_abort_retries - 1, scmd); in _scsih_sas_broadcast_primitive_event()